亚马逊/关键字搜索排名爬虫

目录

1. 需求 & 背景 & 挑战

2. 抓包分析

2.1 从首页获取session等信息

 2.2 获取ubid_acbde信息

2.3 获取session-token信息

2.4 获取csrf-token信息

2.5 调用更改地址的接口

3. 验证码处理


亚马逊作为全球最大的跨境电商平台,其数据的价值不言而喻。常规的使用场景有1)关键字搜索+广告抢位;2)ASIN详情;3)评论分析。

作为完善的电商平台,其反爬的策略复杂多变,尤其是假数据部分的识别。本文重点介绍cookie生成协议的分析,侧重分析的过程。若想直接套用,可直接参考该文章:关键字搜索 - Citron Advisors

1. 需求 & 背景 & 挑战

需求比较简单,比如打开www.amazon.com后,搜索man shoes,看看前3页的商品列表中,是否有自己的商品(投放广告 or 自然排名)。一般来说,越靠前的商品销量越好,所以商家都会特别关注这个排位情况,关键术语叫“抢位”。商家会根据排名情况,决定是否投放广告,以及投放广告的金额,具体可见下图:

背景方面,亚马逊是全球性质的电商平台,总共有很多站点,比如美国站、德国站、日本站等,所以一般要看多个站点的关键字排名情况。排名情况的主要因素有2个:站点和收货地址,见下图:

挑战方面,主要有以下4个:

  1. 地址问题:需解决token、session-token、csrf-token、ubid-acbde、更改地址接口
  2. 验证码问题:当IP质量不行,或请求过于频繁时,会出现验证码
  3. IP供应商:亚马逊会定期记录可疑IP,所以需找好的供应商。

2. 抓包分析

使用Chrome的无痕模式访问www.amazon.com,并使用Charles进行抓包分析后,发现【地址切换】主要分为以下5个步骤:

为了避免法律纠纷和隐私泄露(鹅:407860264),关键信息(接口/字符/逻辑)均已打码,望大家理解。

2.1 从首页获取session等信息

2.2 获取ubid_acbde信息

2.3 获取session-token信息

2.4 获取csrf-token信息

2.5 调用更改地址的接口

3. 验证码处理

亚马逊的验证码主要分为3类,其中gif类型处理比较麻烦,其他2种很简单。大家也不必从头开始造轮子,github上已有人开源,可以直接拿来二次优化后使用。

实在处理不了,换个IP就行,没必要纠结太多。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要进行Python亚马逊爬虫,你可以使用Selenium库或者urllib库来实现。 使用Selenium库可以模拟浏览器操作,具体步骤如下: 1. 安装Selenium库,并下载对应浏览器的WebDriver(如ChromeDriver)。 2. 导入Selenium库。 3. 创建浏览器对象并指定WebDriver的路径。 4. 使用浏览器对象打开亚马逊网站。 5. 使用Selenium的相关方法来定位和获取页面元素,例如输入框、按钮等。 6. 使用Selenium的方法来模拟点击、输入等操作。 7. 使用Selenium的方法来获取页面源代码或者特定元素的信息。 8. 关闭浏览器对象。 使用urllib库可以发送HTTP请求获取亚马逊页面的源代码,具体步骤如下: 1. 导入urllib库。 2. 使用urllib库的`urlopen()`函数发送GET请求,并指定目标网址。 3. 使用`read()`方法读取响应内容。 4. 对响应内容进行解码(如果需要)。 5. 对解码后的内容进行解析,可以使用BeautifulSoup等库来提取页面元素。 6. 关闭连接。 请注意,亚马逊网站有反爬虫机制,因此你可能需要使用代理、设置请求头、处理验证码等措施来避免被检测和封禁。 参考代码示例(基于Selenium): ``` from selenium import webdriver # 设置ChromeDriver的路径 chrome_driver_path = "path_to_chromedriver" # 创建Chrome浏览器对象 browser = webdriver.Chrome(chrome_driver_path) # 打开亚马逊网站 url = "https://www.amazon.com" browser.get(url) # 在搜索框中输入关键字 search_input = browser.find_element_by_id("twotabsearchtextbox") search_input.send_keys("python") # 点击搜索按钮 search_button = browser.find_element_by_xpath("//input[@value='Go']") search_button.click() # 获取搜索结果 search_results = browser.find_elements_by_xpath("//h2[@class='a-size-mini']") for result in search_results: print(result.text) # 关闭浏览器 browser.quit() ``` 参考代码示例(基于urllib): ``` import urllib.request # 发送GET请求并获取响应 url = "https://www.amazon.com" response = urllib.request.urlopen(url) # 读取响应内容 content = response.read().decode("utf-8") print(content) # 解析页面内容,提取相关信息 # ... # 关闭连接 response.close() ``` 希望以上信息对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值