如何解决如何使用scrapy合并多个页面的输出?
我试图在单个字段中显示输出,但它不起作用。代码工作正常,但他的输出是针对不同的 url 显示的。我想要的只是将输出显示在单个字段上,更多的是合并输出。
'''
class StackSpider(Spider):
name = "stack"
allowed_domains = ["flipkart.com"]
page_number = 2
start_urls = [
"https://www.flipkart.com/clothing-and-accessories/topwear/pr?sid=clo%2Cash&otracker=categorytree&p%5B%5D=facets.ideal_for%255B%255D%3DMen","https://www.flipkart.com/womens-footwear/pr?sid=osp,iko&otracker=nmenu_sub_Women_0_Footwear"
]
def parse(self,response):
string = "https://www.flipkart.com"
item = StackItem()
name = response.css('.IRpwTa::text').extract()
brand = response.css('._2WkVRV::text').extract()
original_price = response.xpath('//*[contains(concat( " ",@class," " ),concat( " ","_30jeq3"," " ))]/text()').extract()
sale_price= response.xpath('//*[contains(concat( " ","_3I9_wc"," " ))]/text()').extract()
image_url = response.css('._2r_T1I::attr(src)').extract()
product_page_url = string+str(response.css('.IRpwTa::attr(href)').extract())
product_category = response.css('._10Ermr::text').extract()
c = 0
for i in product_category:
if c<=39:
product_category.append(i)
c+=1
item['name'] = str(name)
item['product_category'] = product_category
item['brand'] = str(brand)
item['original_price'] = [x.encode('ascii','ignore').decode() for x in original_price]
item['sale_price'] = [y.encode('ascii','ignore').decode() for y in sale_price]
item['image_url'] = image_url
item['product_page_url'] = product_page_url
yield item
next_pagem = "https://www.flipkart.com/clothing-and-accessories/topwear/pr?sid=clo%2Cash&otracker=categorytree&p%5B%5D=facets.ideal_for%255B%255D%3DMen&page="+str(StackSpider.page_number)
next_pagew = "https://www.flipkart.com/womens-footwear/pr?sid=osp%2Ciko&otracker=nmenu_sub_Women_0_Footwear&page="+str(StackSpider.page_number)
if StackSpider.page_number <=25:
StackSpider.page_number +=1
yield response.follow(next_pagem,callback= self.parse)
yield response.follow(next_pagew,callback= self.parse)
'''
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。