利用selenium和cv2处理豆瓣滑块验证码

python中安装cv2模块:pip Install open-python

若cv2模块安装没问题,但cv2中某些功能不能用,则使用以下命令:

pip install -i https://pypi.douban.com/simple opencv-python==4.5.3.56

 注意:在处理这种登录框的时候一般都会有一个iframe,不知道这iframe是什么,自己搜

我们要获取iframe中的元素,首先要进入到iframe中

 

# 创建webdriver对象
driver = webdriver.Edge()
driver.get("https://www.douban.com/")

# 注意:
# iframe元素中有id属性值:可以直接使用switch_to_frame(“name值”)或switch_to_frame(“id值”)的方法来进行定位
# 没有可用的id或者name属性时,用以下方式定位
# iframe1 = driver.find_elements(By.XPATH, '//*[@id="anony-reg-new"]/div/div[1]/iframe')
# driver.switch_to.frame(iframe1)

# 不知道什么原因,我切不进iframe
# 由于这个iframe是文档中的第一个,所以我直接switch_to.frame(0)进去
driver.switch_to.frame(0)

 

进入iframe后,选择密码登录

 

# 点击使用密码登录
pwd_login = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/ul[1]/li[2]')
pwd_login.click()
time.sleep(1)    # 休眠1秒

# 输入账号密码
user_name = driver.find_element(By.XPATH, '//*[@id="username"]')
user_name.send_keys("此处是你的帐号")
password = driver.find_element(By.XPATH, '//*[@id="password"]')
password.send_keys("此处是你的password")

# 点击登录
login = driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div[1]/div[5]/a')
login.click()
time.sleep(3)    # 休眠3秒

 点击登录后出现新的iframe,再次切换进入

 

# 出现滑块验证,出现新的iframe,这个iframe有id属性,直接使switch_to.frame('id值')
driver.switch_to.frame('tcaptcha_iframe_dy')

进入到新的iframe后,把这个图片下载下来 ;从两张图中可以看到图片的地址在background-image: url(地址)中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值