国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能

這篇具有很好參考價(jià)值的文章主要介紹了Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)模擬瀏覽器啟動(dòng),獲取網(wǎng)頁(yè)內(nèi)容、自動(dòng)填表單、自動(dòng)登錄、自動(dòng)過驗(yàn)證碼等功能,需要的可以參考一下

  • 庫(kù)

  • 源碼

  • 知識(shí)點(diǎn)補(bǔ)充

食用前準(zhǔn)備

python 3.10.10 #二維碼的庫(kù)ddddocr 需要

庫(kù)

import time
import ddddocr

源碼?????

# import threading  # 導(dǎo)入threading模塊
# from Feishu_SendMsg import *

# Identification verification code
import time
import ddddocr


interval = 100 * 60

# def delayCall():  # 定義方法
#     SendMsg("選題 快快快!!!")

#     timer=threading.Timer(interval,delayCall)  # 每秒運(yùn)行
#     timer.start()  # 執(zhí)行方法
    
# if __name__ == '__main__':  #
#     t1=threading.Timer(interval,function=delayCall)  # 創(chuàng)建定時(shí)器
#     t1.start()  # 開始執(zhí)行線程


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("自動(dòng)填表單")
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("創(chuàng)建 Chrome 瀏覽器實(shí)例")
# 創(chuàng)建 Chrome 瀏覽器實(shí)例
browser = webdriver.Chrome(options=options)

# SendMsg("打開網(wǎng)頁(yè)")
browser.get('www.tttttttt.com')

# SendMsg("找到賬號(hào)和密碼框元素并輸入指定字符串")
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("自動(dòng)填充賬號(hào)密碼")
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"識(shí)別并填寫驗(yàn)證碼: {res}")

# SendMsg("提交表單")
password.send_keys(Keys.RETURN)
# SendMsg("登陸: 提交表單")

知識(shí)點(diǎn)補(bǔ)充

下面為大家介紹一下文中用到的ddddocr庫(kù)的相關(guān)使用吧

識(shí)別驗(yàn)證碼的python 庫(kù)有很多,用起來也并不簡(jiǎn)單,ddddocr (帶帶弟弟ocr)庫(kù)是一個(gè)簡(jiǎn)單實(shí)用的識(shí)別驗(yàn)證碼的庫(kù),推薦給大家

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)

  # 獲取驗(yàn)證碼信息
    def getVerification(self):
        # 獲取當(dāng)前文件的位置、并獲取保存截屏的位置
        current_location = os.path.dirname(__file__)
        screenshot_path = os.path.join(current_location, "..", "VerificationCode")
        # 截取當(dāng)前網(wǎng)頁(yè)并放到自定義目錄下,并命名為printscreen,該截圖中有我們需要的驗(yàn)證碼
        sleep(1)
        self.driver.save_screenshot(screenshot_path + '//' + 'printscreen.png')
        sleep(1)
        # 定位驗(yàn)證碼
        imgelement = self.driver.find_element(By.XPATH, '驗(yàn)證碼圖片的Xpath定位')
        # 獲取驗(yàn)證碼x,y軸坐標(biāo)
        location = imgelement.location
        # 獲取驗(yàn)證碼的長(zhǎng)寬
        size = imgelement.size
        # 寫成我們需要截取的位置坐標(biāo)
        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函數(shù),從截圖中再次截取我們需要的區(qū)域
        fimg = i.crop(rangle)
        fimg = fimg.convert('RGB')
        # 保存我們截下來的驗(yàn)證碼圖片,并讀取驗(yàn)證碼內(nèi)容
        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('識(shí)別出的驗(yàn)證碼為:' + self.res)

    # 判斷驗(yàn)證碼錯(cuò)誤時(shí)的提示信息是否存在
    def isElementPresent(self, by, value):
        try:
            element = self.driver.find_element(by=by, value=value)
        except NoSuchElementException:
            pass
            # 發(fā)生了NoSuchElementException異常,說明頁(yè)面中未找到該元素,返回False
            return False
        else:
            # 沒有發(fā)生異常,表示在頁(yè)面中找到了該元素,返回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, '驗(yàn)證碼輸入框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, '驗(yàn)證碼錯(cuò)誤時(shí)的提示信息Xpath定位')
                if isPresent is True:
                    codeText = self.driver.find_element(By.XPATH, '驗(yàn)證碼錯(cuò)誤時(shí)的提示信息Xpath定位').text
                    if codeText == "驗(yàn)證碼不正確":
                        self.getVerification()
                        sleep(2)
                        self.driver.find_element(By.XPATH, '驗(yàn)證碼輸入框Xpath定位').clear()
                        sleep(1)
                        self.driver.find_element(By.XPATH, '驗(yàn)證碼輸入框Xpath定位').send_keys(self.res)
                        sleep(1)
                        self.driver.find_element(By.XPATH, '登錄按鈕Xpath定位').click()
                        sleep(2)
                    tips = self.driver.find_element(By.XPATH,
                                                    '未輸入驗(yàn)證碼時(shí)的提示信息Xpath定位').text
                    if tips == "請(qǐng)輸入驗(yàn)證碼":
                        self.getVerification()
                        sleep(2)
                        self.driver.find_element(By.XPATH, '驗(yàn)證碼輸入框Xpath定位').click()
                        sleep(1)
                        self.driver.find_element(By.XPATH, '驗(yàn)證碼輸入框Xpath定位').send_keys(self.res)
                        sleep(1)
                        self.driver.find_element(By.XPATH, '登錄按鈕Xpath定位').click()
                        sleep(2)
                    continue
                else:
                    print("驗(yàn)證碼正確,登錄成功!")
            except NoSuchElementException:
                pass
            else:
                isFlag = False
                
        sleep(5)
        self.driver.quit()


if __name__ == '__main__':
    GetVerificationCode().login()

識(shí)別結(jié)果

Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能

?到此這篇關(guān)于Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能的文章就介紹到這了,希望大家以后多多支持!

最后:?下方這份完整的軟件測(cè)試視頻學(xué)習(xí)教程已經(jīng)整理上傳完成,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取【保證100%免費(fèi)】

Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能

?這些資料,對(duì)于【軟件測(cè)試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬個(gè)測(cè)試工程師們走過最艱難的路程,希望也能幫助到你!

Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能文章來源地址http://www.zghlxwxcb.cn/news/detail-513735.html

到了這里,關(guān)于Python實(shí)現(xiàn)獲取網(wǎng)頁(yè)內(nèi)容及自動(dòng)填表單與登錄功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python爬蟲基礎(chǔ):使用requests模塊獲取網(wǎng)頁(yè)內(nèi)容

    Python爬蟲基礎(chǔ):使用requests模塊獲取網(wǎng)頁(yè)內(nèi)容

    了解如何使用Python中的requests模塊進(jìn)行網(wǎng)頁(yè)內(nèi)容獲取,包括獲取網(wǎng)頁(yè)步驟、代碼實(shí)現(xiàn)、狀態(tài)碼查看、提取信息等。

    2024年02月22日
    瀏覽(27)
  • 快樂學(xué)Python,數(shù)據(jù)分析之使用爬蟲獲取網(wǎng)頁(yè)內(nèi)容

    快樂學(xué)Python,數(shù)據(jù)分析之使用爬蟲獲取網(wǎng)頁(yè)內(nèi)容

    在上一篇文章中,我們了解了爬蟲的原理以及要實(shí)現(xiàn)爬蟲的三個(gè)主要步驟:下載網(wǎng)頁(yè)-分析網(wǎng)頁(yè)-保存數(shù)據(jù)。 下面,我們就來看一下:如何使用Python下載網(wǎng)頁(yè)。 瀏覽器畫網(wǎng)頁(yè)的流程,是瀏覽器將用戶輸入的網(wǎng)址告訴網(wǎng)站的服務(wù)器,然后網(wǎng)站的服務(wù)器將網(wǎng)址對(duì)應(yīng)的網(wǎng)頁(yè)返回給瀏覽

    2024年01月17日
    瀏覽(20)
  • 一個(gè)完整Python實(shí)戰(zhàn)項(xiàng)目:selenium識(shí)別驗(yàn)證碼實(shí)現(xiàn)自動(dòng)登錄,自動(dòng)操作瀏覽器獲取某東數(shù)據(jù)

    一個(gè)完整Python實(shí)戰(zhàn)項(xiàng)目:selenium識(shí)別驗(yàn)證碼實(shí)現(xiàn)自動(dòng)登錄,自動(dòng)操作瀏覽器獲取某東數(shù)據(jù)

    最近都沒啥時(shí)間,很久沒更新了。 今天分享一下,如何用selenium識(shí)別驗(yàn)證碼,實(shí)現(xiàn)自動(dòng)登錄以及獲取數(shù)據(jù)。 目標(biāo):某東 話不多說直接開始 環(huán)境 Python 3.10 Pycharm 模塊使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 輸入cmd 輸入安

    2024年02月04日
    瀏覽(32)
  • 一個(gè)月學(xué)通Python(三十四):使用Selenium模擬人工操作及獲取網(wǎng)頁(yè)內(nèi)容

    結(jié)合自身經(jīng)驗(yàn)和內(nèi)部資料總結(jié)的Python教程,每天3-5章,最短1個(gè)月就能全方位的完成Python的學(xué)習(xí)并進(jìn)行實(shí)戰(zhàn)開發(fā),學(xué)完了定能成為大佬!加油吧!卷起來! 全部文章請(qǐng)?jiān)L問專欄:《Python全棧教程(0基礎(chǔ))》 再推薦一下最近熱更的:《大廠測(cè)試高頻面試題詳解》 該專欄對(duì)近年

    2024年02月13日
    瀏覽(28)
  • Python使用selenium自動(dòng)打開網(wǎng)頁(yè)、輸入賬號(hào)密碼并登錄

    此處示例使用 谷歌Chrome瀏覽器 ,打開指定網(wǎng)頁(yè),輸入賬號(hào)密碼,并登錄; 代碼思路如下: ① 加載Chrome瀏覽器 驅(qū)動(dòng)程序 (下載地址) ? ? ? ? 具體下載方式可以參考:使用selenium自動(dòng)打開谷歌瀏覽器 ② 打開url 鏈接(此處建議sleep等待一下,避免網(wǎng)速或內(nèi)存不良時(shí),導(dǎo)致網(wǎng)

    2024年02月11日
    瀏覽(25)
  • python通過selenium爬取網(wǎng)頁(yè)信息,python獲取瀏覽器請(qǐng)求內(nèi)容,控制已經(jīng)打開的瀏覽器

    python通過selenium爬取網(wǎng)頁(yè)信息,python獲取瀏覽器請(qǐng)求內(nèi)容,控制已經(jīng)打開的瀏覽器

    背景:通過python中直接get或者urlopen打開一些有延遲加載數(shù)據(jù)的網(wǎng)頁(yè),會(huì)抓取不到部分信息。 1. 命令行打開chrome,并開啟調(diào)試端口 (前提,找到chrome安裝目錄,找到chrome.exe所在路徑,添加到環(huán)境變量中,例如我的是C:Program FilesGoogleChromeApplication) remote-debugging-port指定遠(yuǎn)程調(diào)試

    2024年02月16日
    瀏覽(97)
  • 用selenium實(shí)現(xiàn)網(wǎng)頁(yè)支付寶自動(dòng)登錄遇到的問題

    用selenium實(shí)現(xiàn)網(wǎng)頁(yè)支付寶自動(dòng)登錄遇到的問題

    前幾天做了一個(gè)淘寶購(gòu)物車秒殺的程序但是在輸入支付密碼的時(shí)候出現(xiàn)了問題,這個(gè)問題主要是這樣的: 我用的方法是send_keys的方法來輸入支付密碼 這樣可以實(shí)現(xiàn)在支付密碼輸入框輸入密碼,但是需要手動(dòng)對(duì)那個(gè)密碼輸入框點(diǎn)一下檢查才可以,然后一直嘗試這個(gè)方法還是一

    2024年02月10日
    瀏覽(16)
  • 實(shí)現(xiàn)使用軟路由自動(dòng)登錄校園網(wǎng)等網(wǎng)頁(yè)認(rèn)證(零基礎(chǔ)教程)

    實(shí)現(xiàn)使用軟路由自動(dòng)登錄校園網(wǎng)等網(wǎng)頁(yè)認(rèn)證(零基礎(chǔ)教程)

    學(xué)校和單位的網(wǎng)絡(luò)每次使用都需要重新登陸,有時(shí)候出差在外無法實(shí)現(xiàn)遠(yuǎn)程控制,非常不方便,這里提供一種使用軟路由自動(dòng)登錄網(wǎng)頁(yè)認(rèn)證的方法,使路由器檢測(cè)網(wǎng)絡(luò)狀態(tài)掉線自動(dòng)重登或者定時(shí)自動(dòng)重登。 按照如下步驟來即可: openwrt是一種針對(duì)嵌入式設(shè)備的Linux操作系統(tǒng),

    2024年02月06日
    瀏覽(46)
  • Python 自動(dòng)獲取大批量excel數(shù)據(jù)并填寫到網(wǎng)頁(yè)表單(pandas;selenium)

    Python 自動(dòng)獲取大批量excel數(shù)據(jù)并填寫到網(wǎng)頁(yè)表單(pandas;selenium)

    自動(dòng)獲取大批量excel數(shù)據(jù)并填寫到網(wǎng)頁(yè)表單 部分網(wǎng)頁(yè)獲取下拉列表點(diǎn)擊的方式有所差異 這個(gè)請(qǐng)根據(jù)網(wǎng)頁(yè)源碼自做選擇 一定要學(xué)會(huì)使用IPDB調(diào)試工具 太好用了!?。。?可能需要pip update一下 看提示 很好解決 沒有報(bào)錯(cuò)最好啦 Python真是太好用了 辦公利器?。。。?!

    2024年02月12日
    瀏覽(25)
  • 爬蟲:使用Selenium模擬人工操作及獲取網(wǎng)頁(yè)內(nèi)容

    結(jié)合自身經(jīng)驗(yàn)和內(nèi)部資料總結(jié)的Python教程,每天3-5章,最短1個(gè)月就能全方位的完成Python的學(xué)習(xí)并進(jìn)行實(shí)戰(zhàn)開發(fā),學(xué)完了定能成為大佬!加油吧!卷起來! 全部文章請(qǐng)?jiān)L問專欄:《Python全棧教程(0基礎(chǔ))》 再推薦一下最近熱更的:《大廠測(cè)試高頻面試題詳解》 該專欄對(duì)近年

    2024年02月13日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包