Python 刮取:从不同页面刮取项目字段

Python 刮取:从不同页面刮取项目字段,python,scrapy,scrapy-spider,Python,Scrapy,Scrapy Spider,我正在尝试使用scrapy从不同页面获取项目字段信息 我想做的是: main_url>从该页面中删除所有链接>转到每个链接 从每个链接>刮取信息,将信息放入项目列表并转到另一个链接 从另一个链接>刮取信息并将信息放在相同的项目列表中 转到每个链接的下一步…重复步骤2-4 完成所有链接后,转到下一页并重复步骤1-3 我从下面找到了一些信息,但仍然无法得到我想要的结果: 目标:获取以下布局结果 下面是我所做的 我的项目类 from scrapy.item import Item, Field

我正在尝试使用scrapy从不同页面获取项目字段信息

我想做的是:

  • main_url>从该页面中删除所有链接>转到每个链接
  • 从每个链接>刮取信息,将信息放入项目列表并转到另一个链接
  • 从另一个链接>刮取信息并将信息放在相同的项目列表中
  • 转到每个链接的下一步…重复步骤2-4
  • 完成所有链接后,转到下一页并重复步骤1-3

    我从下面找到了一些信息,但仍然无法得到我想要的结果:

    目标:获取以下布局结果

    下面是我所做的

    我的项目类

    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类,得到了两个新对象,并给出了我得到的结果