吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2467|回复: 9
收起左侧

[Python 转载] 爬虫之selenium登录中等难度验证码网站

[复制链接]
txq0211 发表于 2022-3-28 21:39
本帖最后由 txq0211 于 2022-3-29 08:25 编辑

抛砖引玉,验证码识别不是每一次都对的。
因此,遇到识别出错的时候,我们需要刷新页面或者验证码,重新登陆。
尝试了好几种方式,最后,正确的方式,请大神指正。
[Python] 纯文本查看 复制代码
from selenium import webdriver
import ddddocr
from selenium.webdriver.chrome.service import Service
from time import sleep
from webdriver_manager.chrome import ChromeDriverManager

# 1、自动安装对应版本的Webdriver
s = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s)

if __name__ == '__main__':
    href = "https://v6.siyucms.com/admin/Login/index"
    while True:
        # 2、打开指定的网页,最大化
        driver.get(href)
        driver.maximize_window()
        sleep(0.5)
        # 3、获取验证码ID
        code_png_lel = driver.find_element_by_id('LAY-user-get-vercode')
        # 4、不用全屏截图,只把验证码所在元素保存为png图片
        code_img = code_png_lel.screenshot_as_png
        # 5、利用弟弟获取验证码
        ocr = ddddocr.DdddOcr()
        code = ocr.classification(code_img)

        # 6、填写账号和验证码(已保存的可不填)
        # driver.find_element_by_name("username").send_keys("test")
        # driver.find_element_by_name("password").send_keys("123456")
        driver.find_element_by_name("vercode").send_keys(code)
        sleep(0.2)

        # 7、登录
        driver.find_element_by_xpath("//button").click()
        sleep(2)
        # 8、2秒后获取当前页面的url
        currentPageUrl = driver.current_url
        print("当前页面的url是:", currentPageUrl)
        # 9、判断当前url是否等于初始href,如果相等,刷新(弹窗问题用刷新处理)再无限循环
        if currentPageUrl == href:
            driver.refresh()
        else:
            break

    # 9、关闭浏览器并退出
    driver.close()



疑难杂症求助:
selenium+接口测试验证的时候,输入正确的验证码返回值也是报错。
问题已解决,感谢hecoter提供通过接口的解决方式。
贴已置顶,请大家往下看。
WX20220328-213734.png

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
helloworld2022 + 1 我很赞同!
hnwang + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bfvA178 发表于 2022-3-28 22:22
txq0211 发表于 2022-3-28 22:07
hecoter 发表于 2022-3-28 22:04
[mw_shl_code=python,true]import ddddocr
import requests

带cookie请求验证码就行了,不带cookie获取的验证码肯定不对阿
 楼主| txq0211 发表于 2022-3-28 22:07
本帖最后由 txq0211 于 2022-3-28 22:08 编辑

hecoter 发表于 2022-3-28 22:04
[mw_shl_code=python,true]import ddddocr
import requests


直接通过验证码链接保存识别的,传参的时候是错的。
而且,这类中间有线条的验证码,你多整几个试试,不是每一次都是对的。
notifier 发表于 2022-3-28 22:36
bfvA178 发表于 2022-3-28 22:22
带cookie请求验证码就行了,不带cookie获取的验证码肯定不对阿

是的,中等难度的应该就至少考虑cookie了~
 楼主| txq0211 发表于 2022-3-28 22:40
bfvA178 发表于 2022-3-28 22:22
带cookie请求验证码就行了,不带cookie获取的验证码肯定不对阿

还是不可以。而且我拦截参数的时候,Burpsite带了Cookies,重发的时候改的验证码有时候报错
 楼主| txq0211 发表于 2022-3-28 22:46
hecoter 发表于 2022-3-28 22:32
[mw_shl_code=python,true]import re
import ddddocr
import requests

666,🐮,通了
hnwang 发表于 2022-3-29 01:00
有些难度,学习了,感谢分享
WeiSanJin 发表于 2022-8-4 13:57
占位 收藏
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 04:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表