Python怎麼實現取得網頁內容及自動填表單與登入功能
庫
import time import ddddocr
原始碼
# import threading # 导入threading模块 # from Feishu_SendMsg import * # Identification verification code import time import ddddocr interval = 100 * 60 # def delayCall(): # 定义方法 # SendMsg("选题 快快快!!!") # timer=threading.Timer(interval,delayCall) # 每秒运行 # timer.start() # 执行方法 # if __name__ == '__main__': # # t1=threading.Timer(interval,function=delayCall) # 创建定时器 # t1.start() # 开始执行线程 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.keys import Keys # SendMsg("自动填表单") options = webdriver.ChromeOptions() options.add_argument('--enable-automation') options.add_argument('--no-sandbox') options.add_argument('--disable-extensions') options.add_argument('--start-maximized') options.add_argument('--disable-infobars') prefs = {"profile.default_content_setting_values.autocomplete_enabled": 2} options.add_experimental_option("prefs", prefs) # SendMsg("创建 Chrome 浏览器实例") # 创建 Chrome 浏览器实例 browser = webdriver.Chrome(options=options) # SendMsg("打开网页") browser.get('www.tttttttt.com') # SendMsg("找到账号和密码框元素并输入指定字符串") username = browser.find_element("name","username") password = browser.find_element("name","userpass") usercode = browser.find_element("name","usercode") img_verifycode = browser.find_element("id","img_verifycode") # SendMsg("自动填充账号密码") username.send_keys("11111") password.send_keys("11111") verifycodeBase64 = img_verifycode.screenshot_as_base64 ocr = ddddocr.DdddOcr() res = ocr.classification(verifycodeBase64) usercode.send_keys(res) # SendMsg(f"识别并填写验证码: {res}") # SendMsg("提交表单") password.send_keys(Keys.RETURN) # SendMsg("登陆: 提交表单")
知識點補充
#下面為大家介紹一下文中用到的ddddocr函式庫的相關使用吧
#識別驗證碼的python 函式庫很多,用起來也不簡單,ddddocr (帶弟弟ocr)函式庫是一個簡單實用的辨識驗證碼的函式庫,推薦給大家
ddddocr具體使用方法
import os import ddddocr from time import sleep from PIL import Image from selenium import webdriver from selenium.webdriver.common.by import By class GetVerificationCode: def __init__(self): self.res = None url = '要登录的地址' self.driver = webdriver.Chrome() self.driver.maximize_window() # 将浏览器最大化 self.driver.get(url) # 获取验证码信息 def getVerification(self): # 获取当前文件的位置、并获取保存截屏的位置 current_location = os.path.dirname(__file__) screenshot_path = os.path.join(current_location, "..", "VerificationCode") # 截取当前网页并放到自定义目录下,并命名为printscreen,该截图中有我们需要的验证码 sleep(1) self.driver.save_screenshot(screenshot_path + '//' + 'printscreen.png') sleep(1) # 定位验证码 imgelement = self.driver.find_element(By.XPATH, '验证码图片的Xpath定位') # 获取验证码x,y轴坐标 location = imgelement.location # 获取验证码的长宽 size = imgelement.size # 写成我们需要截取的位置坐标 rangle = (int(location['x'] + 430), int(location['y'] + 200), int(location['x'] + size['width'] + 530), int(location['y'] + size['height'] + 250)) # 打开截图 i = Image.open(screenshot_path + '//' + 'printscreen.png') # 使用Image的crop函数,从截图中再次截取我们需要的区域 fimg = i.crop(rangle) fimg = fimg.convert('RGB') # 保存我们截下来的验证码图片,并读取验证码内容 fimg.save(screenshot_path + '//' + 'code.png') ocr = ddddocr.DdddOcr() with open(screenshot_path + '//' + 'code.png', 'rb') as f: img_bytes = f.read() self.res = ocr.classification(img_bytes) print('识别出的验证码为:' + self.res) # 判断验证码错误时的提示信息是否存在 def isElementPresent(self, by, value): try: element = self.driver.find_element(by=by, value=value) except NoSuchElementException: pass # 发生了NoSuchElementException异常,说明页面中未找到该元素,返回False return False else: # 没有发生异常,表示在页面中找到了该元素,返回True return True # 登录 def login(self): self.getVerification() self.driver.find_element(By.XPATH, '用户名输入框Xpath定位').send_keys('用户名') self.driver.find_element(By.XPATH, '密码输入框Xpath定位').send_keys('密码') self.driver.find_element(By.XPATH, '验证码输入框Xpath定位').send_keys(self.res) sleep(1) self.driver.find_element(By.XPATH, '登录按钮Xpath定位').click() sleep(2) isFlag = True while isFlag: try: isPresent = self.isElementPresent(By.XPATH, '验证码错误时的提示信息Xpath定位') if isPresent is True: codeText = self.driver.find_element(By.XPATH, '验证码错误时的提示信息Xpath定位').text if codeText == "验证码不正确": self.getVerification() sleep(2) self.driver.find_element(By.XPATH, '验证码输入框Xpath定位').clear() sleep(1) self.driver.find_element(By.XPATH, '验证码输入框Xpath定位').send_keys(self.res) sleep(1) self.driver.find_element(By.XPATH, '登录按钮Xpath定位').click() sleep(2) tips = self.driver.find_element(By.XPATH, '未输入验证码时的提示信息Xpath定位').text if tips == "请输入验证码": self.getVerification() sleep(2) self.driver.find_element(By.XPATH, '验证码输入框Xpath定位').click() sleep(1) self.driver.find_element(By.XPATH, '验证码输入框Xpath定位').send_keys(self.res) sleep(1) self.driver.find_element(By.XPATH, '登录按钮Xpath定位').click() sleep(2) continue else: print("验证码正确,登录成功!") except NoSuchElementException: pass else: isFlag = False sleep(5) self.driver.quit() if __name__ == '__main__': GetVerificationCode().login()
識別結果
以上是Python怎麼實現取得網頁內容及自動填表單與登入功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

在 VS Code 中,可以通過以下步驟在終端運行程序:準備代碼和打開集成終端確保代碼目錄與終端工作目錄一致根據編程語言選擇運行命令(如 Python 的 python your_file_name.py)檢查是否成功運行並解決錯誤利用調試器提升調試效率

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。
