最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你怎么用python批量登錄帶有驗(yàn)證碼的網(wǎng)站

 更新時(shí)間:2021年04月21日 11:58:11   作者:第三枚小菜鳥  
這篇文章主要介紹了教你怎么用python批量登錄帶有驗(yàn)證碼的網(wǎng)站,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下

一、介紹

原理為使用selenium驅(qū)動(dòng)chorme打開一個(gè)新的進(jìn)程并打開數(shù)組中的網(wǎng)址,之后程序自動(dòng)輸入我們事先填入的賬號(hào)密碼,通過已實(shí)現(xiàn)的驗(yàn)證碼識(shí)別模塊填寫驗(yàn)證碼進(jìn)行登錄。登陸完成后自動(dòng)切換頁(yè)面,進(jìn)行下一個(gè)頁(yè)面的登錄

二、準(zhǔn)備

部署環(huán)境:win10

開發(fā)環(huán)境:python2.7

chrome版本89.0.4389.128

三、實(shí)踐

3.1 下載驅(qū)動(dòng)

設(shè)置查看chorme版本

下載對(duì)應(yīng)版本的chromedriver

解壓后,將chromedriver.exe分別放進(jìn)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'  
    };  

## 灰度化照片后得到驗(yàn)證碼
def  getverify1(name):        
    im = Image.open(name)  
    # 轉(zhuǎn)化到灰度圖
    imgry = im.convert('L')
    # imgry.save('g'+name)  
    # 二值化,采用閾值分割法,threshold為分割點(diǎn)
    out = imgry.point(table,'1')  
    # out.save('b'+name)  
    # 識(shí)別
    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  

# 獲取瀏覽器當(dāng)前的驗(yàn)證碼圖片并調(diào)用返回驗(yàn)證碼
def getVCode(driver):  
    # 保存瀏覽器當(dāng)前頁(yè)面
    driver.save_screenshot("page.png")
    # 從頁(yè)面中截取驗(yàn)證碼(XPATH定位)
    vcode = driver.find_element_by_xpath("http://*[@id='randImage']")
    # 獲取驗(yàn)證碼上下左右邊界坐標(biāo)(手動(dòng)加減像素以更精確)
    loc = vcode.location    
    size = vcode.size
    left = loc['x']+5
    top = loc['y']
    right = (loc['x'] +size['width']-5)
    button = (loc['y']+size['height'])
    # 截取頁(yè)面中的驗(yàn)證碼(進(jìn)行截圖:參數(shù)時(shí)一個(gè)元組(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)

#自動(dòng)登錄操作(參數(shù)為登路賬號(hào),密碼,webdriver驅(qū)動(dòng)對(duì)象)
def login(username,password,driver):
    v_code = getVCode(driver)
    driver.find_element_by_id('user_name').click() # 點(diǎn)擊用戶名輸入框
    driver.find_element_by_id('user_name').clear() # 清空輸入框
    driver.find_element_by_id('user_name').send_keys(username) # 自動(dòng)敲入用戶名
    
    driver.find_element_by_id('user_password').click() # 點(diǎn)擊密碼輸入框
    driver.find_element_by_id('user_password').clear() # 清空輸入框
    driver.find_element_by_id('user_password').send_keys(password) # 自動(dòng)敲入密碼

    driver.find_element_by_id('v_code').click() # 點(diǎn)擊驗(yàn)證碼輸入框
    driver.find_element_by_id('v_code').clear() # 清空輸入框
    driver.find_element_by_id('v_code').send_keys(v_code) # 自動(dòng)敲入驗(yàn)證碼

    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)
    #獲取當(dāng)前頁(yè)面句柄
    windows = driver.window_handles
    driver.switch_to_window(windows[i+1])
    login("USERNAME","PASSWORD",driver)

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


time.sleep(100)
driver.close()

3.4 優(yōu)化

在圖片保存那塊直接讀取網(wǎng)站的圖片并且不保存直接識(shí)別

到此這篇關(guān)于教你怎么用python批量登錄帶有驗(yàn)證碼的網(wǎng)站的文章就介紹到這了,更多相關(guān)python登錄有驗(yàn)證碼的網(wǎng)站內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)俄羅斯方塊小游戲

    python實(shí)現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 常用的10個(gè)Python實(shí)用小技巧

    常用的10個(gè)Python實(shí)用小技巧

    這篇文章主要介紹了常用的10個(gè)Python實(shí)用小技巧,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • Python隨機(jī)數(shù)模塊詳情

    Python隨機(jī)數(shù)模塊詳情

    這篇文章主要介紹了Python隨機(jī)數(shù)模塊,隨機(jī)數(shù)模塊實(shí)現(xiàn)了各種分布的偽隨機(jī)數(shù)生成器。對(duì)于整數(shù),從范圍中有統(tǒng)一的選擇。 對(duì)于序列,存在隨機(jī)元素的統(tǒng)一選擇、用于生成列表的隨機(jī)排列的函數(shù)、以及用于隨機(jī)抽樣而無(wú)需替換的函數(shù),下文來看看詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Python3遍歷目錄樹實(shí)現(xiàn)方法

    Python3遍歷目錄樹實(shí)現(xiàn)方法

    這篇文章主要介紹了Python3遍歷目錄樹實(shí)現(xiàn)方法,涉及Python目錄樹的遍歷操作技巧,需要的朋友可以參考下
    2015-05-05
  • Python HTTP庫(kù) requests 的簡(jiǎn)單使用詳情

    Python HTTP庫(kù) requests 的簡(jiǎn)單使用詳情

    requests是Python的一個(gè)HTTP客戶端庫(kù),基于urllib標(biāo)準(zhǔn)庫(kù),在urllib標(biāo)準(zhǔn)庫(kù)的基礎(chǔ)上做了高度封裝,因此更加簡(jiǎn)潔好用,下面就由小編來給大家詳細(xì)介紹吧,需要的朋友可以參考下
    2021-09-09
  • scrapy-redis的安裝部署步驟講解

    scrapy-redis的安裝部署步驟講解

    今天小編就為大家分享一篇關(guān)于scrapy-redis的安裝部署步驟講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • python base64庫(kù)給用戶名或密碼加密的流程

    python base64庫(kù)給用戶名或密碼加密的流程

    這篇文章主要介紹了python base64庫(kù)給用戶名或密碼加密,需要的朋友可以參考下
    2020-01-01
  • 關(guān)于sklearn中模塊包導(dǎo)入報(bào)錯(cuò)的通用解決方法

    關(guān)于sklearn中模塊包導(dǎo)入報(bào)錯(cuò)的通用解決方法

    這篇文章主要介紹了關(guān)于sklearn中模塊包導(dǎo)入報(bào)錯(cuò)的通用解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python使用擴(kuò)展庫(kù)pywin32實(shí)現(xiàn)批量文檔打印實(shí)例

    Python使用擴(kuò)展庫(kù)pywin32實(shí)現(xiàn)批量文檔打印實(shí)例

    這篇文章主要介紹了Python使用擴(kuò)展庫(kù)pywin32實(shí)現(xiàn)批量文檔打印實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python實(shí)現(xiàn)括號(hào)匹配的多種方法小結(jié)

    python實(shí)現(xiàn)括號(hào)匹配的多種方法小結(jié)

    這篇文章主要為大家詳細(xì)介紹了python中實(shí)現(xiàn)括號(hào)匹配的三種方法,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下
    2024-12-12

最新評(píng)論

海阳市| 凭祥市| 隆回县| 长春市| 宁陵县| 固原市| 普兰店市| 石狮市| 乐山市| 保亭| 隆化县| 黄浦区| 望奎县| 新巴尔虎左旗| 涟水县| 黑山县| 保定市| 明光市| 耒阳市| 崇阳县| 星子县| 珲春市| 海城市| 交城县| 襄垣县| 全州县| 荆州市| 新民市| 商洛市| 鹿邑县| 寻乌县| 广西| 仁怀市| 佛山市| 准格尔旗| 淮滨县| 永丰县| 沙湾县| 盐津县| 万年县| 家居|