Python Scrapy为在浏览器中正常工作的链接返回不同的易趣结果

Python Scrapy为在浏览器中正常工作的链接返回不同的易趣结果,python,scrapy,Python,Scrapy,我正在尝试编写一个简单的scrapy spider,它返回ebay搜索结果 首先,我对桌子进行了高级搜索,并将搜索结果的url用作起始页,然后编写了一个爬行器,从那里开始,然后进入下一页,从每个页面中抓取结果 然而,一旦我进入第5页,就好像我在ebay上进行了搜索,结果为0,即使我在浏览器或scrapy shell中使用相同的url,我也会得到第5页上的实际结果 为了简单起见,我在下面为一个简单的爬行器提供了一些代码,它所做的只是将整个页面下载到一个文件中,并且只下载5页,然后将使用的链接保存到

我正在尝试编写一个简单的scrapy spider,它返回ebay搜索结果

首先,我对桌子进行了高级搜索,并将搜索结果的url用作起始页,然后编写了一个爬行器,从那里开始,然后进入下一页,从每个页面中抓取结果

然而,一旦我进入第5页,就好像我在ebay上进行了搜索,结果为0,即使我在浏览器或scrapy shell中使用相同的url,我也会得到第5页上的实际结果

为了简单起见,我在下面为一个简单的爬行器提供了一些代码,它所做的只是将整个页面下载到一个文件中,并且只下载5页,然后将使用的链接保存到一个名为“links.csv”的csv文件中。当您使用terminal中的
scrapy startproject firstspider
创建scrapy目录时,这会写入spider文件

class firstSpider(scrapy.Spider): 

    name = "first" 

    allowed_domains = ["ebay.co.uk"] 
    
    start_urls = [ 
"https://www.ebay.co.uk/sch/i.html?_fosrp=1&_from=R40&_nkw=desk&_in_kw=1&_ex_kw=&_sacat=0&LH_Sold=1&_udlo=&_udhi=&LH_Auction=1&_samilow=&_samihi=&_sadis=15&_stpos=CA103AZ&_sargn=-1%26saslc%3D1&_salic=3&_sop=13&_dmd=1&_ipg=200&LH_Complete=1"
    ]

    def parse(self, response):


        page = response.meta.get("page",1)

        filename = f"results_page_{page}.html"

        with open(filename, 'wb') as f: 
            f.write(response.body)

        if page < 6:

            next_page = response.xpath("//a[@aria-label='Next page of results']/@href").get()

            yield {"Link":response.url}

            if next_page is not None:

                yield response.follow(next_page, callback=self.parse, meta = {"page":page+1})
                
如果我这样做,那么从页面1.html到页面4.html的文件都会显示结果,而页面5.html是易趣页面,表示我的搜索结果为0。如果您从链接中获取相应的url,它将提供一个不同的页面,其中包含结果

如果我尝试格式化一个给出正确页码的URL列表,并将其用作我的起始URL,也会发生同样的情况


任何关于如何进入第4页及以上页面的提示都将不胜感激

我刚刚找到了一个解决问题的方法,尽管我仍然不知道最初是什么导致了问题。
scrapy crawl first -o links.csv