pyspider为什么能实现url爬取多条数据吗?

发布于 2022-09-11 16:40:05 字数 449 浏览 16 评论 0

据说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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

捶死心动 2022-09-18 16:40:05

detail_page可以返回一个列表,然后在on_result处理的时候,当列表处理就行。
你这个代码没什么问题,问题没有出在这里。还有测试的时候并不会调用on_message,测试的send_message发送的消息给了左侧的message里面。只有项目运行的时候才会调用on_message.

我在刚接触的时候没有注意url去重的问题,导致没有结果。如果要抓取相同的url,需要修改url比如加入锚点(#tag),这样才会重新抓取。希望后面学习的人注意这个问题。
你的也有可能是这个原因

长不大的小祸害 2022-09-18 16:40:05

代码没看出来问题,估计你是在webUI 手动调试不出结果,run 起来就能看到了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文