【问题标题】:scrapy, changing location for amazon.de doesn't workscrapy,更改 amazon.de 的位置不起作用
【发布时间】:2021-10-30 02:48:53
【问题描述】:

我在抓取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 它仍然显示错误信息,对于当前位置。

你能帮忙吗?看起来我缺少一些参数或其他东西

【问题讨论】:

    标签: python python-3.x scrapy amazon


    【解决方案1】:

    我遇到了同样的问题,我的解决方案是使用代理管理器,例如 zenscrape,将 IP 位置设置为我想要从中获取数据的国家/地区。 如果你找到了一个解决scrapy请求和地址更改的解决方案,请告诉我!

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2017-10-17
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多