比如执行:scrapycrawlxxxx启动xxxxspider获取到了产品分类列表[{"classname":"奥迪","classpic":"htttp://xxxxx/xx.jpg","classid":1001,"producturl":"http://xxxxx/product/1001"}]如何通过producturl或者classid自动执行获取产品详细的spider抓取产品详内容。[{"productid":9000,"productname":"奥迪Q5","productpic":"http://xxxx/aodi.pic","classid":1001}]
2 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
一般我都是抓取list用一个爬虫,抓取详情用另一个爬虫。抓取详情的爬虫从已经保存到库中的某个字段获取url,然后抓取详情页的内容。然后两个数据再通过某个字段进行关联。
函数式编程
TA贡献1807条经验 获得超9个赞
我这么写的不知道可否?item.pyclassPclassItem(scrapy.Item):'''产品分类item'''cid=scrapy.Field()cname=scrapy.Field()classProductItem(scrapy.Item):'''产品item'''pcid=scrapy.Field()pname=scrapy.Field()pid=scrapy.Field()DemoSplider.pyclassDempSpider(scrapy.spiders.Spider):defparse(self,response):item=PclassItem()cid=response.xpath("//xxxx")item["cid"]=cidpassyielditemproducturl=response.xpath("//xxxx")yieldRequest(producturl,meta={"cid":cid},callback=parse_product)defparse_product(scrapy.spiders.Spider):item=ProductItem()item['pid']=response.meta['cid']passyielditempipelines.pyclassDemoPipeline(object):defprocess_item(self,item,spider):ifitem.__class__==PclassItem:passifitem.__class__==ProductItem:pass
添加回答
举报
0/150
提交
取消