scrapy 框架内循环反复执行,可能是因为多线程的问题吗

来源:4-19 pipeline数据库保存

qq_So_17

2020-09-15

shear_chapter_urls = chapter_urls[f_num:]
urlCount = len(shear_chapter_urls)
if urlCount:

        for k in range(urlCount):
            isuu_items['ord_x'] = k
            chapter_url = shear_chapter_urls[k]

            yield Request(url=parse.urljoin(response.url, chapter_url), meta={'isuu_items': isuu_items}, callback=self.content_parse)

断点调试,N次执行的K的值为 0,1,3,4,5,2,1,1,1,1,1

写回答

1回答

bobby

2020-09-16

哈哈 这是正常的 因为scrapy是异步io框架, 是基于协程的, 所以不是每次进入parse这个函数不代表你每次进入的都是同一个调用实例,其中某一次可能就是某个url回来之后的回调 所以这里可能是1 等

0
3
bobby
回复
qq_So_17
是的, 理论上应该考虑到,不过文件写入的速度是很快的
2020-09-25
共3条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5795 学习 · 6290 问题

查看课程