pyspider的回调函数为什么必须点向右的白色箭头才会执行?

发布于 2022-09-04 04:11:26 字数 1627 浏览 9 评论 0

想要实现的功能:爬新闻首页,拿到新闻链接,然后去爬每篇新闻,把爬到的新闻内容插入到monggodb中

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

from pyspider.libs.base_handler import *
from pymongo import *


client = MongoClient()
db = client['result']
col = db['kr']
#col.remove()

class Handler(BaseHandler):
    def on_start(self):
        print '-'*10
        self.crawl('http://36kr.com/news',headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'},fetch_type='js', callback=self.index_page,connect_timeout = 50,timeout = 200)

    def index_page(self, response):
        print '+'*10
        for item in response.doc('div.intro').items():
            print '='*10
            self.crawl(item('h3>a').attr.href, fetch_type='js', callback=self.detail_page)
            
    def detail_page(self, response):
        print '#'*10
        obj = {
            "url": response.url,
            "title": response.doc('title').text(),
            "content": response.doc('section.textblock:first').text()
        }
        col.insert(obj)
        return obj

点击run之后

clipboard.png

然后点向右的白色箭头,

clipboard.png

必须再点白色箭头,detail_page才会执行

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

银河中√捞星星 2022-09-11 04:11:26

不然怎么叫「单步调试」呢?


要执行到 dashboard 上改状态,点 run

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