Amazoncaptcha 95%成功率绕过亚马逊IP验证码

这次又来折腾亚马逊了。
之前有介绍亚马逊的商品获取和评论获取。但是在批量获取和多次访问的情况下出现了需要验证码的情况:
image.png
当然,出现这种情况你是肯定获取不到数据的。但是,你离你想要的数据,真的很近了。所以本次的目的就是绕过这个验证码,获取验证码背后的数据。

一、Amazoncaptcha
git地址:https://github.com/a-maliarov...
Amazoncaptcha这个包就是在你出现这个页面的时候使用的,可以通过selenium获取当前的验证码页面,使用Amazoncaptcha包的fromdriver这个方法返回验证码的str格式:

1.from amazoncaptcha import AmazonCaptcha  
2.from selenium import webdriver  
3.   
4.driver = webdriver.Chrome() # This is a simplified example  
5.driver.get('https://www.amazon.com/errors/validateCaptcha')  
6.   
7.captcha = AmazonCaptcha.fromdriver(driver)  
8.solution = captcha.solve()

还有一种方式那就是将验证码页面的验证码图片链接通过Amazoncaptcha.fromlink方法获取:

1.from amazoncaptcha import AmazonCaptcha  
2.   
3.link = 'https://images-na.ssl-images-amazon.com/captcha/usvmgloq/Captcha_kwrrnqwkph.jpg'  
4.   
5.captcha = AmazonCaptcha.fromlink(link)  
6.solution = captcha.solve()  

二、亚马逊验证码认证 和 Amazoncaptcha具体使用
首先打开亚马逊的验证码页面(实在没法复现错误,把之前的报错的html存到本地了,也不是不能凑合看),根据图片输入验证码之后发送验证,查看网络请求:
image.png
在这我们能发现这个链接除了我们输入的验证码eld-keywords之外,还有amzn和amzn-r这两个参数。
那么着两个参数是从哪来的呢?
回到输入验证码的那个页面,检查元素,在这个页面有两个隐藏于,这两个参数的value值就在这里:
image.png
当然,验证码图片的链接也捎带手获取了,然后将所有的参数凑成链接:

1.imgUrl = sel.css(".a-spacing-double-large .a-section form .a-spacing-large .a-text-center img::attr(src)").extract_first()  
2.captcha = AmazonCaptcha.fromlink(imgUrl)  
3.solution = captcha.solve()  
4.amzn = sel.xpath("//input[@name='amzn']/@value").extract_first()  
5.amznr = sel.xpath("//input[@name='amzn-r']/@value").extract_first()  
6.validUrl = f"https://www.amazon.com/errors/validateCaptcha?amzn={amzn}&amzn-r={amznr}&field-keywords={solution}"  

image.png
这样就获取到发送验证码的链接了。
加入当你在请求一个亚马逊商品页的时候,突然返回了验证码的页面,按照上面的思路,获取到验证码的验证链接,然后进行get请求,你会发现这个链接返回的就是你想要的东西,不需要重定向:
image.png
不过有一点,无论是亚马逊的各种请求还有Amazoncaptcha需要请求验证码图片链接,是无法正常请求的,实在需要的话,还是需要代理去辅助请求。
我这里使用的是ipidea的代理,好的代理能帮助你更好的获取数据,高质量低延迟,而且新用户可以白嫖哦!
地址:www.ipidea.net
以上就是 Amazoncaptcha 的使用方法。

17 声望
1 粉丝
0 条评论
推荐阅读
代理IP帮助Python爬虫分析市场
在当今数字化时代,数据是企业发展的重要支柱,因此,大量的公司都希望能够使用网络爬虫来分析市场趋势。然而,由于爬虫可能会遇到限制,因此搭配代理IP来使用是非常必要的措施,那么Python爬虫如何利用代理IP来...

ipidea阅读 105

封面图
正则表达式实例
收集在业务中经常使用的正则表达式实例,方便以后进行查找,减少工作量。常用正则表达式实例1. 校验基本日期格式 {代码...} {代码...} 2. 校验密码强度密码的强度必须是包含大小写字母和数字的组合,不能使用特殊...

寒青57阅读 8.7k评论 11

JavaScript有用的代码片段和trick
平时工作过程中可以用到的实用代码集棉。判断对象否为空 {代码...} 浮点数取整 {代码...} 注意:前三种方法只适用于32个位整数,对于负数的处理上和Math.floor是不同的。 {代码...} 生成6位数字验证码 {代码...} ...

jenemy49阅读 7.4k评论 12

再也不学AJAX了!(二)使用AJAX ① XMLHttpRequest
「再也不学 AJAX 了」是一个以 AJAX 为主题的系列文章,希望读者通过阅读本系列文章,能够对 AJAX 技术有更加深入的认识和理解,从此能够再也不用专门学习 AJAX。本篇文章为该系列的第二篇,最近更新于 2023 年 1...

libinfs42阅读 7k评论 12

封面图
CSS 绘制一只思否猫
欢迎关注我的公众号:前端侦探练习 CSS 有一个比较有趣的方式,就是发挥想象,绘制各式各样的图案,比如来绘制一只思否猫?思否猫,SegmentFault 思否的吉祥物,是一只独一无二、特立独行、热爱自由的(>^ω^&lt...

XboxYan48阅读 3.4k评论 14

封面图
「多图预警」完美实现一个@功能
一天产品大大向 boss 汇报完研发成果和产品业绩产出,若有所思的走出来,劲直向我走过来,嘴角微微上扬。产品大大:boss 对我们的研发成果挺满意的,balabala...(内心 OS:不听,讲重点)产品大大:咱们的客服 I...

wuwhs32阅读 3.6k评论 5

封面图
还在用 JS 做节流吗?CSS 也可以防止按钮重复点击
举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如只允许每300ms提交一次,这时候我想大部分同学都会到网上直接拷贝一段throttle函数,或者直接引用lodash工具库

XboxYan35阅读 2.8k评论 2

封面图
17 声望
1 粉丝
宣传栏