登录古诗文网
import time from selenium import webdriver from selenium.webdriver import ChromeOptions from PIL import Image from js_test.tool.chaojiying import Chaojiying_Client options = ChromeOptions() # 指定chrome data路径,已添加cookies访问。 # options.add_argument(r"user-data-dir=C:\Users\Ray R He\AppData\Local\Google\Chrome\User Data") options.add_argument("start-maximized") browser = webdriver.Chrome(executable_path=r"C:\Users\Ray R He\Desktop\chromedriver.exe", options=options) print(browser.title) # 通过该函数在文档加载前注入一段js代码以消去webdriver值。 window.navigator.webdriver设置为undefined或者false script = ''' Object.defineProperty(navigator, 'webdriver', { get: () => false }) ''' browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script}) browser.get("https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx") time.sleep(2) browser.save_screenshot("./古诗文.png") # 截图 code_img_ele = browser.find_element_by_xpath('//*[@id="imgCode"]') location = code_img_ele.location # 获取元素左上角的坐标X,Y print('Location:', location) size = code_img_ele.size # 获取元素的长和宽 print('size:', size) rangle = ( location['x'], location['y'], location['x'] + size['width'], location['y'] + size['height'] ) # 验证码的四个坐标点 i = Image.open("./古诗文.png") frame = i.crop(rangle) # 按坐标截图 frame.save('./code_img.png') chaojiying = Chaojiying_Client('hehaha', 'h672049506', '920530') # 验证码识别 im = open(r'./code_img.png', 'rb').read() # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要// imgcode = chaojiying.PostPic(im, 1902)['pic_str'] # 1902 验证码类型 官方网站>>价格体系 3.4+版 print 后要加() print(imgcode) browser.find_element_by_xpath('//*[@id="email"]').send_keys('17726465606') browser.find_element_by_xpath('//*[@id="pwd"]').send_keys('h672049506') time.sleep(1) browser.find_element_by_xpath('//*[@id="code"]').send_keys(imgcode) time.sleep(1) browser.find_element_by_xpath('//*[@id="denglu"]').click()