身份证号 查看学籍

2020-10-05  本文已影响0人  Aedda
from selenium import webdriver

def q():
    id_num=[]
    front_6=['210402','210411','210404','210403']
    middle_8='19990427'
    for i in front_6:
        for j in range(10): # 15
            for k in range(10):  # 16
                for l in [0,2,4,6,8]:  # 17
                    id_num.append(f'{i}{middle_8}{j}{k}{l}')
    return id_num


def public_global_browser():
    options = webdriver.ChromeOptions()
    options.add_argument(
        'user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"')
    options.add_argument('--disable-gpu')  # 规避bug
    # options.add_argument('--headless')    # 无头模式
    options.add_argument('--no-sandbox')  # 最高权限运行
    options.add_argument("--disable-javascript")  # 禁用JavaScript
    options.add_argument('--start-maximized ')
    options.add_experimental_option('useAutomationExtension', False)
    options.add_experimental_option('excludeSwitches', ['enable-automation'])  # 设置开发者模式启动,该模式下webdriver属性为正常值
    prefs = {'profile.default_content_setting_values': {'notifications': 2}}
    options.add_experimental_option('prefs', prefs)  # 禁用浏览器弹窗
    driver = webdriver.Chrome(options=options)
    driver.execute_cdp_cmd("Network.enable", {})
    script = '''Object.defineProperty(navigator, 'webdriver', {get: () => undefined})'''
    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
    driver.implicitly_wait(0.1)
    return driver

def wite(dirver,i):
    dirver.find_element_by_xpath('/html/body/main/article/div[1]/form/span[2]/input[1]').clear()
    dirver.find_element_by_xpath('/html/body/main/article/div[1]/form/span[2]/input[1]').send_keys(i)
    dirver.find_element_by_xpath('/html/body/main/article/div[1]/form/span[2]/input[2]').click()

dirver = public_global_browser()
all_num = q()
dirver.get('https://bajiu.cn/sfz/')
with open('身份证.csv','a',encoding='utf-8') as f:
    for i in all_num:
        wite(dirver, f'{i}0')
        try:
            err = dirver.find_element_by_xpath('/html/body/main/article/div[2]/p[2]').text
            if '的末位数错误' in err:
                wite(dirver, f'{i}{err[-3:-2]}')
        except:
            pass
        try:
            haoma = dirver.find_element_by_xpath('/html/body/main/article/div[2]/p[2]').text
            xingbie = dirver.find_element_by_xpath('/html/body/main/article/div[2]/p[4]').text
            fazheng = dirver.find_element_by_xpath('/html/body/main/article/div[2]/p[5]').text
            if '女' in xingbie:
                print(f'{haoma}   {fazheng}')
                f.write(f'{haoma}   {fazheng}\n')
        except:
            pass
    f.close()





from selenium import webdriver
import re
from PIL import Image
import base64
import requests
import json

def public_global_browser():
    options = webdriver.ChromeOptions()
    options.add_argument(
        'user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36"')
    options.add_argument('--disable-gpu')  # 规避bug
    # options.add_argument('--headless')    # 无头模式
    options.add_argument('--no-sandbox')  # 最高权限运行
    options.add_argument("--disable-javascript")  # 禁用JavaScript
    options.add_argument('--start-maximized ')
    options.add_experimental_option('useAutomationExtension', False)
    options.add_experimental_option('excludeSwitches', ['enable-automation'])  # 设置开发者模式启动,该模式下webdriver属性为正常值
    prefs = {'profile.default_content_setting_values': {'notifications': 2}}
    options.add_experimental_option('prefs', prefs)  # 禁用浏览器弹窗
    driver = webdriver.Chrome(options=options)
    driver.execute_cdp_cmd("Network.enable", {})
    script = '''Object.defineProperty(navigator, 'webdriver', {get: () => undefined})'''
    driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
    driver.implicitly_wait(0.1)
    return driver


def wite(dirver,i,code):
    dirver.find_element_by_xpath('//*[@id="sfz"]').clear()
    dirver.find_element_by_xpath('//*[@id="sfz"]').send_keys(i)
    dirver.find_element_by_xpath('//*[@id="verify"]').clear()
    dirver.find_element_by_xpath('//*[@id="verify"]').send_keys(code)

def auth_code(dirver):
    element = dirver.find_element_by_xpath('//*[@id="img_verifys"]')
    left = element.location['x']
    top = element.location['y']
    right = element.location['x'] + element.size['width']
    bottom = element.location['y'] + element.size['height']
    dirver.save_screenshot('screenshot.png')
    im = Image.open('screenshot.png')
    im = im.crop((left, top, right, bottom))
    im.save('screenshot.png')
    with open('screenshot.png', 'rb') as pic_file:
        img64=base64.b64encode(pic_file.read())
        params = {
            "username": '68110923',
            "password": 'q1515311352',
            "captchaData": img64,
            "captchaType": 1001
        }
    response = requests.post("http://www.bingtop.com/ocr/upload/", data=params)
    code = json.loads(response.text).get('data','').get('recognition')
    return code



if __name__ == '__main__':
    ls = []
    with open('身份证.csv', 'r', encoding='utf-8') as f:
        for i in f.readlines():
            id = re.findall('身份证号码:(.*?) ', i)[0]
            ls.append(id)
    dirver = public_global_browser()
    dirver.get('http://cjcx.neea.edu.cn/html1/folder/20051/1156-1.htm')
    dirver.find_element_by_xpath('//*[@id="xm"]').send_keys('李雨菲雪')
    for i in ls:
        code = auth_code(dirver)
        print(f'{i},{code}')
        wite(dirver,i,code)
        dirver.find_element_by_xpath('//*[@id="submitButton"]').click()


上一篇 下一篇

猜你喜欢

热点阅读