Python 刮取:从不同页面刮取项目字段
我正在尝试使用scrapy从不同页面获取项目字段信息 我想做的是:Python 刮取:从不同页面刮取项目字段,python,scrapy,scrapy-spider,Python,Scrapy,Scrapy Spider,我正在尝试使用scrapy从不同页面获取项目字段信息 我想做的是: main_url>从该页面中删除所有链接>转到每个链接 从每个链接>刮取信息,将信息放入项目列表并转到另一个链接 从另一个链接>刮取信息并将信息放在相同的项目列表中 转到每个链接的下一步…重复步骤2-4 完成所有链接后,转到下一页并重复步骤1-3 我从下面找到了一些信息,但仍然无法得到我想要的结果: 目标:获取以下布局结果 下面是我所做的 我的项目类 from scrapy.item import Item, Field
from scrapy.item import Item, Field
class myItems(Item):
info1 = Field()
info2 = Field()
info3 = Field()
info4 = Field()
我的蜘蛛课
from scrapy.http import Request
from myProject.items import myItems
class mySpider(scrapy.Spider):
name = 'spider1'
start_urls = ['main_link']
def parse(self, response):
items = []
list1 = response.xpath().extract() #extract all info from here
list2 = response.xpath().extract() #extract all info from here
for i,j in zip(list1, list2):
link1 = 'http...' + i
request = Request(link1, self.parseInfo1, dont_filter =True)
request.meta['item'] = items
yield request
link2 = 'https...' + j
request = Request(link2, self.parseInfo2, meta={'item':items}, dont_filter = True)
# Code for crawling to next page
def parseInfo1(self, response):
item = myItems()
items = response.meta['item']
item[info1] = response.xpath().extract()
item[info2] = response.xpath().extract()
items.append(item)
return items
def parseInfo2(self, response):
item = myItems()
items = response.meta['item']
item[info3] = response.xpath().extract()
item[info4] = response.xpath().extract()
items.append(item)
return items
我通过在终端上键入以下命令来执行spider:
> scrapy crawl spider1 -o filename.csv -t csv
我得到了所有字段的结果,但它们的顺序不正确。我的csv文件如下所示:
有人知道如何达到我上面的“目标”吗?
我感谢你的帮助
谢谢没关系,我发现了我的错误。我实例化了两次myItems类,得到了两个新对象,并给出了我得到的结果