小小的石头13 发表于 2021-6-18 21:13

某网站的自动登录selenium

python selenium 识别验证码自动登录。新学的练练手,这个网站明天就关闭了。

import time
from selenium import webdriver
import requests
from bs4 import BeautifulSoup
import re
import base64

url = 'https://zy.hebeea.edu.cn:7001/hebgkzyfz/zyfz/main/index'
browser = webdriver.Chrome()
browser.maximize_window()
browser.get(url)

def main():

    html = browser.find_element_by_xpath('/html/body/div/div/div')
    print(html.get_attribute('textContent'))

    login()

def login():
    code = img()

    username = '你的账号'
    password = '密码'
    un = browser.find_element_by_xpath('//*[@id="zjhm"]')
    pw = browser.find_element_by_xpath('//*[@id="mm"]')
    yzm = browser.find_element_by_xpath('//*[@id="kaptchaCode"]')
    submit = browser.find_element_by_xpath('//*[@id="submitBtn"]')
    un.send_keys(username)
    time.sleep(0.7)
    pw.send_keys(password)
    time.sleep(0.7)
    yzm.send_keys(code)
    time.sleep(0.7)
    submit.click()

def img():
    headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Mobile Safari/537.36 Edg/91.0.864.48'}
    response = requests.get(url,headers=headers)
    soup = BeautifulSoup(response.text,'html.parser')
    res = soup.find('img',id='VerificationCode')
    finally_res = re.findall('src="(.*)" ',str(res))
    #print(finally_res)

    img_url = 'https://zy.hebeea.edu.cn:7001' + finally_res
    img_bytes = requests.get(img_url).content

    with open('img1.jpg','wb') as f:
      f.write(img_bytes)

    img_file = open('img1.jpg',mode='rb')
    finally_img = base64.b64encode(img_bytes) #base64编码
    #print(finally_img)
    img_file.close()

    break_img_url = 'http://api.95man.com:8888/api/Http/Recog?Taken=你的taken&imgtype=1&len=4'
    data = {'ImgBase64': finally_img}
    img_content = requests.post(break_img_url,data=data)
    code = re.findall('\|(.*)\|',img_content.text) #验证码

    return code

if __name__ == '__main__':
    main()

Alfred斯斯 发表于 2021-6-18 21:35

6哦    怎么用

jjl 发表于 2021-6-18 23:08

自动化基础,加油!

ablajan 发表于 2021-6-18 23:44

这个代码对像我这样的小白太有用了,谢谢楼主,希望你多分享这种代码

零下72℃的坚强 发表于 2021-6-19 07:13

谢谢楼主分享,太有用了

jys9903dx 发表于 2021-6-19 10:30

学习了,谢谢

明次 发表于 2021-6-19 21:32

能说下原理吗

_paopao 发表于 2021-6-21 19:44

学习下,谢谢分享

tianya0908 发表于 2021-6-22 19:50

谢谢楼主分享,太有用了

kele_87 发表于 2021-10-29 09:45

绕过验证码会不会更简单点?
页: [1]
查看完整版本: 某网站的自动登录selenium