scrapy,更改 amazon.de 的位置不起作用

Posted

技术标签:

【中文标题】scrapy,更改 amazon.de 的位置不起作用【英文标题】:scrapy, changing location for amazon.de doesn't work 【发布时间】: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 它仍然显示错误信息,对于当前位置。

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于scrapy,更改 amazon.de 的位置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

更改 MySQL 数据库位置不起作用

当我更改 Nginx 位置时,Nuxt.js 不起作用

Scrapy分页不起作用

在这种情况下,如何使用自定义 tableView 单元格处理可重用单元格(从代码中的其他位置更改单元格背景颜色不起作用)

使用ID的css选择器在scrapy中不起作用

在 Windows 上更改 apache 的 documentroot 不起作用