请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

识别微博验证码 下载验证码无法打开的问题

现在微博登录 需要验证在这里输入验证码 但是下载之后 验证码总是损坏 老师帮我看一下

headers = {
        "HOST": "login.sina.com.cn",
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36"
    }


chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
browser = webdriver.Chrome('C:/Users/孙佩豪/AppData/Local/Google/Chrome/Application/chromedriver.exe',
                           chrome_options=chrome_options)

browser.get("https://www.weibo.com/")
time.sleep(10)


browser.find_element_by_xpath('//input[@id="loginname"]').send_keys("15292060685")      # 输入密码
browser.find_element_by_xpath('//input[@type="password"]').send_keys("qq1362441")      # 输入密码

try:
    verifycode_image = browser.find_element_by_xpath('//img[@node-type="verifycode_image"]')
except:
    verifycode_image = None

if verifycode_image:
    image_url = verifycode_image.get_attribute("src")
    image_content = requests.get(image_url).content

    fh = open("./weibocode_en.jpeg", "wb")  # 保存文件
    fh.write(image_content)
    Yundama = YDMHttp("", "", , "")  # 实例化云打码
    code = Yundama.decode("./weibocode_en.jpeg", 5000, 60)  # 识别

    while True:  # 若识别失败 不停识别 直至成功
        if code == "":  #
            code = Yundama.decode("yzm_en.jpeg", 5000, 60)
            time.sleep(0.5)
        else:
            break
    browser.find_element_by_xpath('//input[@node-type="verifycode"]').send_keys(code)

正在回答 回答被采纳积分+3

1回答

bobby 2020-03-13 12:25:20
import requests
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0"
}
pic
 = 
requests.get("https://login.sina.com.cn/cgi/pin.php?r=35959179&s=0&p=yf-73898da8e0f94a49ba31a58ca95428e24023",
 headers=headers)
if pic.status_code == 200:
    file_path = "image.png"
    with open(file_path, 'wb') as fp:
        fp.write(pic.content)
        fp.close()
print("下载完成")

这个代码我测试过可以下载图片啊

0 回复 有任何疑惑可以回复我~
  • 提问者 慕丝7238044 #1
    是的 我也觉得没问题。但是下载来的就是打不开。真的玄学哈哈 我换了使用selenium截图的方式,因为这个图片就是下载下来也不是原图了。
    谢谢老师回复!
    回复 有任何疑惑可以回复我~ 2020-03-13 18:08:58
  • bobby 回复 提问者 慕丝7238044 #2
    你没有设置headers把
    回复 有任何疑惑可以回复我~ 2020-03-14 18:20:22
  • 慕姐8741563 回复 提问者 慕丝7238044 #3
    是只有我一个人登录之后还要进行登录验证吗?
    回复 有任何疑惑可以回复我~ 2021-04-12 10:12:57
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号