scrapy scrappy,更改www.example.com的位置amazon.de不起作用

nkhmeac6  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(106)

我在amazon.de的抓取过程中发现了以下问题。在收集过程中,它(amazon)根据当前(脚本)位置显示信息,因此某些项目不可用,因为其他价格与原始价格不同。
我有以下scrapy代码,用于更改位置和刮取数据:

class AmazonSpider(BaseSpider):
    name = 'amazon'
    allowed_domains = ['www.amazon.de']
    start_urls = ['https://www.amazon.de/']

    def parse(self, response):
        data = {
            'locationType': 'LOCATION_INPUT',
            'zipCode': '10115',
            'storeContext': 'drugstore',
            'deviceType': 'web',
            'pageType': 'Detail',
            'actionSource': 'glow',
            'almBrandId': 'undefined'
        }

        yield scrapy.FormRequest(
            url='https://www.amazon.de/gp/delivery/ajax/address-change.html',
            formdata=data,
            callback=self.parse_pages
        )

    def parse_pages(self, response):
        url = 'https://www.amazon.de/-/en/Filter-Computer-Glasses-Headache-Vintage/dp/B091FYYDXB/ref=sr_1_95?dchild=1&keywords=kopfschmerzen&qid=1630410090&s=drugstore&sr=1-95'
        yield response.follow(
            url=url,
            dont_filter=True,
            callback=self.parse_product
        )

但是即使我们执行位置改变呼叫address-change,它仍然显示当前位置的错误信息。
你能帮我一下吗?看起来我好像少了一些参数或者别的什么

a7qyws3x

a7qyws3x1#

我有同样的问题,我的解决方案是使用代理管理器,如zenscrape,与IP地址设置为国家,我想从数据。如果你找到一个解决方案与scrapy请求和地址更改,让我知道!

相关问题