【记录】基于selenium的亚马逊爬虫代码维护中遇到的bug与修护方式

项目场景:

导师为了检验我爬虫学得怎么样,把已经毕业师兄写好的一个基于selenium的爬虫代码交给我,要我去爬一些数据。然后不出所料,运行过程bug连连,有因为我自己学术不精导致的,也有因为师兄代码中存在一些版本老旧函数等,故开此帖,以做记录,也方便在学习爬虫的小伙伴一起进步!

特别感谢闪电橙子的帮助与指导
参考链接:Python3|Selenium4 极速上手入门(Windows)

问题一:AttributeError: ‘WebDriver’ object has no attribute ‘find_elements_by_xpath’

报错如图
在这里插入图片描述
虽然我知道这个东西很蠢,但是我还是说明一下(因为我之前不知道):
这里的报错是一步步追踪溯源的,最终发现报错是在第127行,与driver.find_elements_by_path有关。而不是说515 247 127行都有错。

错因:新版函数driver没有这个类了
解决办法:换等效函数
driver.find_elements_by_xpath( 改成了driver.find_elements(By.XPATH,


问题二:登录 login()时,偶尔会遇到反爬验证(有时候还是两次验证),原代码无法直接通过验证

在尝试登录时,遇到了亚马逊的反爬机制,并且偶尔甚至是两三次验证,防不胜防:
在这里插入图片描述

原因:登录阶段就是很容易被验证,而且可能是网络不好的原因,有时候验证时的验证码甚至无法加载
解决办法:
(1)借助 vpn 能有效减少登录阶段的验证拦截
(2)进入调试模式,由于代码基于 selenium,通过模拟点击来重复操作,
因此可以手动过一下验证(注:偶尔存在验证码无法加载的情况【如上图】,
可以多点几次 Try different image,多点几次就会直接跳过验证码阶段(可
能亚马逊识别出你是个真人并且验证码加载不出来….)或者选择“Hear”模
式,听验证码并进行输入)

2024年3月29日:我傻了 在connection函数里面设置了不显示图片 所以验证码蹦不出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值