共计 1803 个字符,预计需要花费 5 分钟才能阅读完成。
这次又来折腾亚马逊了。
之前有介绍亚马逊的商品获取和评论获取。然而在批量获取和屡次拜访的状况下呈现了须要验证码的状况:
当然,呈现这种状况你是必定获取不到数据的。然而,你离你想要的数据,真的很近了。所以本次的目标就是绕过这个验证码,获取验证码背地的数据。
一、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 存到本地了,也不是不能对付看),依据图片输出验证码之后发送验证,查看网络申请:
在这咱们能发现这个链接除了咱们输出的验证码 eld-keywords 之外,还有 amzn 和 amzn- r 这两个参数。
那么着两个参数是从哪来的呢?
回到输出验证码的那个页面,查看元素,在这个页面有两个暗藏于,这两个参数的 value 值就在这里:
当然,验证码图片的链接也捎带手获取了,而后将所有的参数凑成链接:
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}"
这样就获取到发送验证码的链接了。
退出当你在申请一个亚马逊商品页的时候,忽然返回了验证码的页面,依照下面的思路,获取到验证码的验证链接,而后进行 get 申请,你会发现这个链接返回的就是你想要的货色,不须要重定向:
不过有一点,无论是亚马逊的各种申请还有 Amazoncaptcha 须要申请验证码图片链接,是无奈失常申请的,切实需要的话,还是须要代理去辅助申请。
我这里应用的是 ipidea 的代理,好的代理能帮忙你更好的获取数据,高质量低提早,而且新用户能够白嫖哦!
地址:www.ipidea.net
以上就是 Amazoncaptcha 的应用办法。