从不同网页各爬取一部分信息拼装成一个完整的item

来源:4-22 itemloader提取信息

starkShang

2020-07-05

能否从网页a、b、c各爬取一部分的数据,最后拼成一个完整的item?可以从页面a爬取部分数据,并且获取页面b、c的链接。
根据之前的课程,可以yield Request并把获取好a中数据的item通过meta交给parse_b和parse_c两个函数,分别再在parse_b和parse_c两个函数中获取页面b和页面c的数据。
但是这样会不会造成最后获得了两个item副本,而不能合成一个完整的item数据?

写回答

1回答

bobby

2020-07-05

这种一般你要保证顺序性。 比如b只能在a之后获取 那么你就要在a抓取到之后进行yield 请求b的request,然后再b请求返回来以后,再b的reponse处理中yield一个c的请求。最后在c的reponse中拿到b中放在meta中的item最后合并一下 再yield你的最终item就行了

0
4
bobby
回复
starkShang
这个我回头看看源码是如何写的
2020-07-07
共4条回复

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

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

5796 学习 · 6290 问题

查看课程