pyspider为什么能实现url爬取多条数据吗?
据说on_message可以,但我测试了还是不行,有什么方法能实现吗?
def detail_page(self, response):
results = json.loads(response.text)
for result in results:
date = result['date']
number = response.url[6:]
self.send_message(self.project_name, {
"number": number,
"date":date,
}, url="%s#%s" % (response.url, date))
def on_message(self, project, msg):
print msg
return msg
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
detail_page可以返回一个列表,然后在on_result处理的时候,当列表处理就行。
你这个代码没什么问题,问题没有出在这里。还有测试的时候并不会调用on_message,测试的send_message发送的消息给了左侧的message里面。只有项目运行的时候才会调用on_message.
我在刚接触的时候没有注意url去重的问题,导致没有结果。如果要抓取相同的url,需要修改url比如加入锚点(#tag),这样才会重新抓取。希望后面学习的人注意这个问题。
你的也有可能是这个原因
代码没看出来问题,估计你是在webUI 手动调试不出结果,run 起来就能看到了。