-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathFCU_Select_Class.py
61 lines (50 loc) · 1.72 KB
/
FCU_Select_Class.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from datetime import date
from email import header
import imp
from wsgiref import headers
import requests
import bs4
import re
import ddddocr
import urllib3
import base64
import urllib.request
from PIL import Image
import http.cookiejar as cookielib
from selenium.webdriver.chrome.options import Options
import configparser
config = configparser.ConfigParser()
config.read('config.ini')
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
import time
if __name__ == '__main__':
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
browser = webdriver.Chrome(ChromeDriverManager().install(),chrome_options=chrome_options)
browser.get('https://course.fcu.edu.tw')
ocr = ddddocr.DdddOcr()
url = 'https://course.fcu.edu.tw'
img_base64 = browser.execute_script("""
var ele = arguments[0];
var cnv = document.createElement('canvas');
cnv.width = ele.width; cnv.height = ele.height;
cnv.getContext('2d').drawImage(ele, 0, 0);
return cnv.toDataURL('image/jpeg').substring(22);
""", browser.find_element_by_xpath("//*[@id='ctl00_Login1_Image1']"))
with open("captcha_login.png", 'wb') as image:
image.write(base64.b64decode(img_base64))
with open('captcha_login.png', 'rb') as f:
img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)
user = browser.find_element_by_id('ctl00_Login1_UserName')
passwd = browser.find_element_by_id('ctl00_Login1_Password')
vcode=browser.find_element_by_id('ctl00_Login1_vcode')
userid='這裡改成你的帳號'
userpw='這裡改成你的密碼'
user.send_keys(userid)
passwd.send_keys(userpw)
vcode.send_keys(res)
button = browser.find_element_by_id('ctl00_Login1_LoginButton')
button.click()