91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用python批量登錄帶有驗證碼的網站

發布時間:2021-04-25 10:02:52 來源:億速云 閱讀:240 作者:小新 欄目:開發技術

小編給大家分享一下如何使用python批量登錄帶有驗證碼的網站,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

python主要應用領域有哪些

1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。

一、介紹

原理為使用selenium驅動chorme打開一個新的進程并打開數組中的網址,之后程序自動輸入我們事先填入的賬號密碼,通過已實現的驗證碼識別模塊填寫驗證碼進行登錄。登陸完成后自動切換頁面,進行下一個頁面的登錄

二、準備

部署環境:win10

開發環境:python2.7

chrome版本89.0.4389.128

三、實踐

3.1 下載驅動

設置查看chorme版本

下載對應版本的chromedriver

解壓后,將chromedriver.exe分別放進chrome瀏覽器目錄 和 Python根目錄

chrome瀏覽器目錄(如:C:\Program Files (x86)\Google\Chrome\Application)

Python根目錄(如:D:\Python\Python37)

3.2 安裝python依賴

pip install pillow

pip install selenium

3.3 編寫程序

batchlogin.py

#coding=UTF-8
import time
import os
from selenium import webdriver
from selenium.common.exceptions import NoAlertPresentException
from pytesser import *
from PIL import Image
from PIL import ImageEnhance  
from PIL import ImageFilter  
import traceback

threshold = 140  
table = []  
for i in range(256):  
    if i < threshold:  
        table.append(0)  
    else:  
        table.append(1)  
rep={'O':'0',  
    'I':'1','L':'1',  
    'Z':'2',  
    'S':'8'  
    };  

## 灰度化照片后得到驗證碼
def  getverify1(name):        
    im = Image.open(name)  
    # 轉化到灰度圖
    imgry = im.convert('L')
    # imgry.save('g'+name)  
    # 二值化,采用閾值分割法,threshold為分割點
    out = imgry.point(table,'1')  
    # out.save('b'+name)  
    # 識別
    text = image_to_string(out)  
    # 校正 
    text = text.strip()  
    text = text.upper();    
    for r in rep:  
        text = text.replace(r,rep[r])   
    # out.save(text+'.jpg')  
    print text  
    return text  

# 獲取瀏覽器當前的驗證碼圖片并調用返回驗證碼
def getVCode(driver):  
    # 保存瀏覽器當前頁面
    driver.save_screenshot("page.png")
    # 從頁面中截取驗證碼(XPATH定位)
    vcode = driver.find_element_by_xpath("//*[@id='randImage']")
    # 獲取驗證碼上下左右邊界坐標(手動加減像素以更精確)
    loc = vcode.location    
    size = vcode.size
    left = loc['x']+5
    top = loc['y']
    right = (loc['x'] +size['width']-5)
    button = (loc['y']+size['height'])
    # 截取頁面中的驗證碼(進行截圖:參數時一個元組(left,top,right,button)并保存
    page_pic = Image.open('page.png')
    v_code_pic = page_pic.crop((left,top,right,button))   
    v_code_pic.save('yzm.png')   
    return getverify1('yzm.png')
    # return getverify1(v_code_pic)

#自動登錄操作(參數為登路賬號,密碼,webdriver驅動對象)
def login(username,password,driver):
    v_code = getVCode(driver)
    driver.find_element_by_id('user_name').click() # 點擊用戶名輸入框
    driver.find_element_by_id('user_name').clear() # 清空輸入框
    driver.find_element_by_id('user_name').send_keys(username) # 自動敲入用戶名
    
    driver.find_element_by_id('user_password').click() # 點擊密碼輸入框
    driver.find_element_by_id('user_password').clear() # 清空輸入框
    driver.find_element_by_id('user_password').send_keys(password) # 自動敲入密碼

    driver.find_element_by_id('v_code').click() # 點擊驗證碼輸入框
    driver.find_element_by_id('v_code').clear() # 清空輸入框
    driver.find_element_by_id('v_code').send_keys(v_code) # 自動敲入驗證碼

    driver.find_element_by_xpath('//*[@id="SubmitButton"]').click()

open.py

#coding=UTF-8
from selenium import webdriver
from batchlogin import *
driver = webdriver.Chrome()
urls=[
    'http://www.test.com:6086/QX_SPD_B2B/',
	'http://www.test.com:6086/QX_SPD_B2B/'
]

for i in range(0, len(urls)):
    url = urls[i]
    windows_open = "window.open('" + url + "')"
    driver.execute_script(windows_open)
    time.sleep(1)
    #獲取當前頁面句柄
    windows = driver.window_handles
    driver.switch_to_window(windows[i+1])
    login("USERNAME","PASSWORD",driver)

    #cookies=driver.get_cookies()
    #print(cookies)
    ##解決頁面加載不正確的問題
    time.sleep(2)


time.sleep(100)
driver.close()

3.4 優化

在圖片保存那塊直接讀取網站的圖片并且不保存直接識別

看完了這篇文章,相信你對“如何使用python批量登錄帶有驗證碼的網站”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

互助| 定远县| 凤翔县| 南汇区| 龙州县| 思茅市| 新晃| 清水河县| 天峻县| 虞城县| 上虞市| 衡水市| 滦南县| 九龙坡区| 同仁县| 阿坝县| 平陆县| 大埔县| 香河县| 益阳市| 台中县| 金塔县| 通榆县| 岳阳县| 远安县| 宿州市| 麻江县| 德化县| 舞阳县| 宁津县| 阳山县| 沅陵县| 鹤庆县| 海宁市| 连江县| 桂东县| 诸暨市| 吉木萨尔县| 廉江市| 左权县| 大理市|