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

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別

這篇具有很好參考價值的文章主要介紹了Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

極驗(yàn)滑動驗(yàn)證碼的識別

上節(jié)我們了解了可以直接利用 tesserocr 來識別簡單的圖形驗(yàn)證碼。近幾年出現(xiàn)了一些新型驗(yàn)證碼,其中比較有代表性的就是極驗(yàn)驗(yàn)證碼,它需要拖動拼合滑塊才可以完成驗(yàn)證,相對圖形驗(yàn)證碼來說識別難度上升了幾個等級。本節(jié)將講解極驗(yàn)驗(yàn)證碼的識別過程。

1. 本節(jié)目標(biāo)

我們的目標(biāo)是用程序來識別并通過極驗(yàn)驗(yàn)證碼的驗(yàn)證,包括分析識別思路、識別缺口位置、生成滑塊拖動路徑、模擬實(shí)現(xiàn)滑塊拼合通過驗(yàn)證等步驟。

2. 準(zhǔn)備工作

本次我們使用的 Python 庫是 Selenium,瀏覽器為 Chrome。請確保已經(jīng)正確安裝 Selenium 庫、Chrome 瀏覽器,并配置 ChromeDriver,相關(guān)流程可以參考第 1 章的說明。

3. 了解極驗(yàn)驗(yàn)證碼

極驗(yàn)驗(yàn)證碼官網(wǎng)為:極驗(yàn)GEETEST-全球交互安全創(chuàng)領(lǐng)者-交互安全|業(yè)務(wù)安全 | 移動安全。它是一個專注于提供驗(yàn)證安全的系統(tǒng),主要驗(yàn)證方式是拖動滑塊拼合圖像。若圖像完全拼合,則驗(yàn)證成功,即表單成功提交,否則需要重新驗(yàn)證。

驗(yàn)證碼示例

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

驗(yàn)證碼示例

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

現(xiàn)在極驗(yàn)驗(yàn)證碼已經(jīng)更新到 3.0 版本。截至 2017 年 7 月,全球有 16 萬家企業(yè)使用極驗(yàn),每天服務(wù)響應(yīng)超過 4 億次。極驗(yàn)驗(yàn)證碼廣泛應(yīng)用于直播視頻、金融服務(wù)、電子商務(wù)、游戲娛樂、政府企業(yè)等各大類型網(wǎng)站。下面圖中是斗魚、魅族的登錄頁面,它們都對接了極驗(yàn)驗(yàn)證碼。

斗魚登錄頁面

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

魅族登錄頁面

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

4. 極驗(yàn)驗(yàn)證碼的特點(diǎn)

極驗(yàn)驗(yàn)證碼相較于圖形驗(yàn)證碼來說識別難度更大。對于極驗(yàn)驗(yàn)證碼 3.0 版本,我們首先點(diǎn)擊按鈕進(jìn)行智能驗(yàn)證。如果驗(yàn)證不通過,則會彈出滑動驗(yàn)證的窗口,拖動滑塊拼合圖像進(jìn)行驗(yàn)證。之后三個加密參數(shù)會生成,通過表單提交到后臺,后臺還會進(jìn)行一次驗(yàn)證。

極驗(yàn)驗(yàn)證碼還增加了機(jī)器學(xué)習(xí)的方法來識別拖動軌跡。官方網(wǎng)站的安全防護(hù)有如下幾點(diǎn)說明。

  • 三角防護(hù)之防模擬

惡意程序模仿人類行為軌跡對驗(yàn)證碼進(jìn)行識別。針對模擬,極驗(yàn)擁有超過 4000 萬人機(jī)行為樣本的海量數(shù)據(jù)。利用機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)構(gòu)建線上線下的多重靜態(tài)、動態(tài)防御模型。識別模擬軌跡,界定人機(jī)邊界。

  • 三角防護(hù)之防偽造

惡意程序通過偽造設(shè)備瀏覽器環(huán)境對驗(yàn)證碼進(jìn)行識別。針對偽造,極驗(yàn)利用設(shè)備基因技術(shù)。深度分析瀏覽器的實(shí)際性能來辨識偽造信息。同時根據(jù)偽造事件不斷更新黑名單,大幅提高防偽造能力。

  • 三角防護(hù)之防暴力

惡意程序短時間內(nèi)進(jìn)行密集的攻擊,對驗(yàn)證碼進(jìn)行暴力識別 針對暴力,極驗(yàn)擁有多種驗(yàn)證形態(tài),每一種驗(yàn)證形態(tài)都有利用神經(jīng)網(wǎng)絡(luò)生成的海量圖庫儲備,每一張圖片都是獨(dú)一無二的,且圖庫不斷更新,極大程度提高了暴力識別的成本。

另外極驗(yàn)的驗(yàn)證相對于普通驗(yàn)證方式更加方便,體驗(yàn)更加友好,其官方網(wǎng)站說明如下:

  • 點(diǎn)擊一下,驗(yàn)證只需要 0.4 秒

極驗(yàn)始終專注于去驗(yàn)證化實(shí)踐,讓驗(yàn)證環(huán)節(jié)不再打斷產(chǎn)品本身的交互流程,最終達(dá)到優(yōu)化用戶體驗(yàn)和提高用戶轉(zhuǎn)化率的效果。

  • 全平臺兼容,適用各種交互場景

極驗(yàn)兼容所有主流瀏覽器甚至古老的 IE6,也可以輕松應(yīng)用在 iOS 和 Android 移動端平臺,滿足各種業(yè)務(wù)需求,保護(hù)網(wǎng)站資源不被濫用和盜取。

  • 面向未來,懂科技,更懂人性

極驗(yàn)在保障安全同時不斷致力于提升用戶體驗(yàn),精雕細(xì)琢的驗(yàn)證面板,流暢順滑的驗(yàn)證動畫效果,讓驗(yàn)證過程不再枯燥乏味。

因此,相較于一般驗(yàn)證碼,極驗(yàn)的驗(yàn)證安全性和易用性有了非常大的提高。

5. 識別思路

對于應(yīng)用了極驗(yàn)驗(yàn)證碼的網(wǎng)站,如果我們直接模擬表單提交,加密參數(shù)的構(gòu)造是個問題,需要分析其加密和校驗(yàn)邏輯,相對煩瑣。所以我們采用直接模擬瀏覽器動作的方式來完成驗(yàn)證。在 Python 中,我們可以使用 Selenium 來完全模擬人的行為的方式來完成驗(yàn)證,此驗(yàn)證成本相比直接去識別加密算法少很多。

首先我們找到一個帶有極驗(yàn)驗(yàn)證的網(wǎng)站,最合適的當(dāng)然為極驗(yàn)官方后臺了,鏈接為:Geetest Account后臺,首先可以看到在登錄按鈕上方有一個極驗(yàn)驗(yàn)證按鈕:

驗(yàn)證按鈕

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

此按鈕為智能驗(yàn)證按鈕。一般來說,如果是同一個會話,一段時間內(nèi)第二次點(diǎn)擊會直接通過驗(yàn)證。如果智能識別不通過,則會彈出滑動驗(yàn)證窗口,我們要拖動滑塊拼合圖像完成二步驗(yàn)證。

拖動示例

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

驗(yàn)證成功后,驗(yàn)證按鈕變成如圖的狀態(tài)。

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

接下來,我們便可以提交表單了。

所以,識別驗(yàn)證需要完成如下三步。

  • 模擬點(diǎn)擊驗(yàn)證按鈕

  • 識別滑動缺口的位置

  • 模擬拖動滑塊

第一步操作是最簡單的,我們可以直接用 Selenium 模擬點(diǎn)擊按鈕即可。

第二步操作識別缺口的位置比較關(guān)鍵,這里需要用到圖像的相關(guān)處理方法。首先觀察缺口的樣子。

缺口示例

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

缺口示例

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

缺口的四周邊緣有明顯的斷裂邊緣,邊緣和邊緣周圍有明顯的區(qū)別。我們可以實(shí)現(xiàn)一個邊緣檢測算法來找出缺口的位置。對于極驗(yàn)驗(yàn)證碼來說,我們可以利用和原圖對比檢測的方式來識別缺口的位置,因?yàn)樵跊]有滑動滑塊之前,缺口并沒有呈現(xiàn)。

初始狀態(tài)

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

我們可以同時獲取兩張圖片。設(shè)定一個對比閾值,然后遍歷兩張圖片,找出相同位置像素 RGB 差距超過此閾值的像素點(diǎn),那么此像素點(diǎn)的位置就是缺口的位置。

第 (3) 步操作看似簡單,但其中的坑比較多。極驗(yàn)驗(yàn)證碼增加了機(jī)器軌跡識別,勻速移動、隨機(jī)速度移動等方法都不能通過驗(yàn)證,只有完全模擬人的移動軌跡才可以通過驗(yàn)證。人的移動軌跡一般是先加速后減速,我們需要模擬這個過程才能成功。

有了基本的思路之后,我們就用程序來實(shí)現(xiàn)極驗(yàn)驗(yàn)證碼的識別過程吧。

6. 初始化

這次我們選定的鏈接為 Geetest Account后臺,也就是極驗(yàn)的管理后臺登錄頁面。在這里我們首先初始化一些配置,如 Selenium 對象的初始化及一些參數(shù)的配置,如下所示:

EMAIL = 'test@test.com'
PASSWORD = '123456'
?
class CrackGeetest():
 ? ?def __init__(self):
 ? ? ? ?self.url = 'https://account.geetest.com/login'
 ? ? ? ?self.browser = webdriver.Chrome()
 ? ? ? ?self.wait = WebDriverWait(self.browser, 20)
 ? ? ? ?self.email = EMAIL
 ? ? ? ?self.password = PASSWORD

其中 EMAIL 和 PASSWORD 就是登錄極驗(yàn)需要的用戶名和密碼,如果沒有的話可以先注冊一下。

7. 模擬點(diǎn)擊

實(shí)現(xiàn)第一步的操作,也就是模擬點(diǎn)擊初始的驗(yàn)證按鈕。我們定義一個方法來獲取這個按鈕,利用顯式等待的方法來實(shí)現(xiàn),如下所示:

def get_geetest_button(self):
 ? ?"""
 ?  獲取初始驗(yàn)證按鈕
 ?  :return: 按鈕對象
 ?  """
 ? ?button = self.wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'geetest_radar_tip')))
 ? ?return button

獲取一個 WebElement 對象,調(diào)用它的 click() 方法即可模擬點(diǎn)擊,代碼如下所示:

# 點(diǎn)擊驗(yàn)證按鈕
button = self.get_geetest_button()
button.click()

第一步的工作就完成了。

8. 識別缺口

接下來識別缺口的位置。首先獲取前后兩張比對圖片,二者不一致的地方即為缺口。獲取不帶缺口的圖片,利用 Selenium 選取圖片元素,得到其所在位置和寬高,然后獲取整個網(wǎng)頁的截圖,圖片裁切出來即可,代碼實(shí)現(xiàn)如下:

def get_position(self):
 ? ?"""
 ?  獲取驗(yàn)證碼位置
 ?  :return: 驗(yàn)證碼位置元組
 ?  """
 ? ?img = self.wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'geetest_canvas_img')))
 ? ?time.sleep(2)
 ? ?location = img.location
 ? ?size = img.size
 ? ?top, bottom, left, right = location['y'], location['y'] + size['height'], location['x'], location['x'] + size['width']
 ? ?return (top, bottom, left, right)
?
def get_geetest_image(self, name='captcha.png'):
 ? ?"""
 ?  獲取驗(yàn)證碼圖片
 ?  :return: 圖片對象
 ?  """
 ? ?top, bottom, left, right = self.get_position()
 ? ?print(' 驗(yàn)證碼位置 ', top, bottom, left, right)
 ? ?screenshot = self.get_screenshot()
 ? ?captcha = screenshot.crop((left, top, right, bottom))
 ? ?return captcha

這里 get_position() 函數(shù)首先獲取圖片對象,獲取它的位置和寬高,隨后返回其左上角和右下角的坐標(biāo)。get_geetest_image() 方法獲取網(wǎng)頁截圖,調(diào)用了 crop() 方法將圖片裁切出來,返回的是 Image 對象。

接下來我們需要獲取第二張圖片,也就是帶缺口的圖片。要使得圖片出現(xiàn)缺口,只需要點(diǎn)擊下方的滑塊即可。這個動作觸發(fā)之后,圖片中的缺口就會顯現(xiàn),如下所示:

def get_slider(self):
 ? ?"""
 ?  獲取滑塊
 ?  :return: 滑塊對象
 ?  """
 ? ?slider = self.wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'geetest_slider_button')))
 ? ?return slider

這里利用 get_slider() 方法獲取滑塊對象,調(diào)用 click() 方法即可觸發(fā)點(diǎn)擊,缺口圖片即可呈現(xiàn),如下所示:

# 點(diǎn)按呼出缺口
slider = self.get_slider()
slider.click()

調(diào)用 get_geetest_image() 方法將第二張圖片獲取下來即可。

現(xiàn)在我們已經(jīng)得到兩張圖片對象,分別賦值給變量 image1 和 image2。接下來對比圖片獲取缺口。我們在這里遍歷圖片的每個坐標(biāo)點(diǎn),獲取兩張圖片對應(yīng)像素點(diǎn)的 RGB 數(shù)據(jù)。如果二者的 RGB 數(shù)據(jù)差距在一定范圍內(nèi),那就代表兩個像素相同,繼續(xù)比對下一個像素點(diǎn)。如果差距超過一定范圍,則代表像素點(diǎn)不同,當(dāng)前位置即為缺口位置,代碼實(shí)現(xiàn)如下:

def is_pixel_equal(self, image1, image2, x, y):
 ? ?"""
 ?  判斷兩個像素是否相同
 ?  :param image1: 圖片 1
 ?  :param image2: 圖片 2
 ?  :param x: 位置 x
 ?  :param y: 位置 y
 ?  :return: 像素是否相同
 ?  """
 ? ?# 取兩個圖片的像素點(diǎn)
 ? ?pixel1 = image1.load()[x, y]
 ? ?pixel2 = image2.load()[x, y]
 ? ?threshold = 60
 ? ?if abs(pixel1[0] - pixel2[0]) <threshold and abs(pixel1[1] - pixel2[1]) < threshold and abs(pixel1[2] - pixel2[2]) < threshold:
 ? ? ? ?return True
 ? ?else:
 ? ? ? ?return False
 ? ? ? ?
def get_gap(self, image1, image2):
 ? ?"""
 ?  獲取缺口偏移量
 ?  :param image1: 不帶缺口圖片
 ?  :param image2: 帶缺口圖片
 ?  :return:
 ?  """
 ? ?left = 60
 ? ?for i in range(left, image1.size[0]):
 ? ? ? ?for j in range(image1.size[1]):
 ? ? ? ? ? ?if not self.is_pixel_equal(image1, image2, i, j):
 ? ? ? ? ? ? ? ?left = i
 ? ? ? ? ? ? ? ?return left
 ? ?return left

get_gap() 方法即獲取缺口位置的方法。此方法的參數(shù)是兩張圖片,一張為帶缺口圖片,另一張為不帶缺口圖片。這里遍歷兩張圖片的每個像素,利用 is_pixel_equal() 方法判斷兩張圖片同一位置的像素是否相同。比較兩張圖 RGB 的絕對值是否均小于定義的閾值 threshold。如果絕對值均在閾值之內(nèi),則代表像素點(diǎn)相同,繼續(xù)遍歷。否則代表不相同的像素點(diǎn),即缺口的位置。

兩張對比圖片如圖所示。

初始狀態(tài)

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

后續(xù)狀態(tài)

Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別,python爬蟲逆向教程,python,爬蟲,網(wǎng)絡(luò)爬蟲,網(wǎng)絡(luò)安全

兩張圖片有兩處明顯不同的地方:一個就是待拼合的滑塊,一個就是缺口?;瑝K的位置會出現(xiàn)在左邊位置,缺口會出現(xiàn)在與滑塊同一水平線的位置,所以缺口一般會在滑塊的右側(cè)。如果要尋找缺口,直接從滑塊右側(cè)尋找即可。我們直接設(shè)置遍歷的起始橫坐標(biāo)為 60,也就是從滑塊的右側(cè)開始識別,這樣識別出的結(jié)果就是缺口的位置。

現(xiàn)在,我們獲取了缺口的位置。完成驗(yàn)證還剩下最后一步 —— 模擬拖動。

9. 模擬拖動

模擬拖動過程不復(fù)雜,但其中的坑比較多?,F(xiàn)在我們只需要調(diào)用拖動的相關(guān)函數(shù)將滑塊拖動到對應(yīng)位置,是嗎?如果是勻速拖動,極驗(yàn)必然會識別出它是程序的操作,因?yàn)槿藷o法做到完全勻速拖動。極驗(yàn)驗(yàn)證碼利用機(jī)器學(xué)習(xí)模型,篩選此類數(shù)據(jù)為機(jī)器操作,驗(yàn)證碼識別失敗。

我們嘗試分段模擬,將拖動過程劃分幾段,每段設(shè)置一個平均速度,速度圍繞該平均速度小幅度隨機(jī)抖動,這樣也無法完成驗(yàn)證。

最后,完全模擬加速減速的過程通過了驗(yàn)證。前段滑塊做勻加速運(yùn)動,后段滑塊做勻減速運(yùn)動,利用物理學(xué)的加速度公式即可完成驗(yàn)證。

滑塊滑動的加速度用 a 來表示,當(dāng)前速度用 v 表示,初速度用 v0 表示,位移用 x 表示,所需時間用 t 表示,它們之間滿足如下關(guān)系:

x = v0 * t + 0.5 * a * t * t 
v = v0 + a * t

利用這兩個公式可以構(gòu)造軌跡移動算法,計(jì)算出先加速后減速的運(yùn)動軌跡,代碼實(shí)現(xiàn)如下所示:

def get_track(self, distance):
    """
    根據(jù)偏移量獲取移動軌跡
    :param distance: 偏移量
    :return: 移動軌跡
    """
    # 移動軌跡
    track = []
    # 當(dāng)前位移
    current = 0
    # 減速閾值
    mid = distance * 4 / 5
    # 計(jì)算間隔
    t = 0.2
    # 初速度
    v = 0
    
    while current < distance:
        if current < mid:
            # 加速度為正 2
            a = 2
        else:
            # 加速度為負(fù) 3
            a = -3
        # 初速度 v0
        v0 = v
        # 當(dāng)前速度 v = v0 + at
        v = v0 + a * t
        # 移動距離 x = v0t + 1/2 * a * t^2
        move = v0 * t + 1 / 2 * a * t * t
        # 當(dāng)前位移
        current += move
        # 加入軌跡
        track.append(round(move))
    return track

這里定義了 get_track() 方法,傳入的參數(shù)為移動的總距離,返回的是運(yùn)動軌跡。運(yùn)動軌跡用 track 表示,它是一個列表,列表的每個元素代表每次移動多少距離。

首先定義變量 mid,即減速的閾值,也就是加速到什么位置開始減速。在這里 mid 值為 4/5,即模擬前 4/5 路程是加速過程,后 1/5 路程是減速過程。

接著定義當(dāng)前位移的距離變量 current,初始為 0,然后進(jìn)入 while 循環(huán),循環(huán)的條件是當(dāng)前位移小于總距離。在循環(huán)里我們分段定義了加速度,其中加速過程的加速度定義為 2,減速過程的加速度定義為?3。之后套用位移公式計(jì)算出某個時間段內(nèi)的位移,將當(dāng)前位移更新并記錄到軌跡里即可。

直到運(yùn)動軌跡達(dá)到總距離時,循環(huán)終止。最后得到的 track 記錄了每個時間間隔移動了多少位移,這樣滑塊的運(yùn)動軌跡就得到了。

最后按照該運(yùn)動軌跡拖動滑塊即可,方法實(shí)現(xiàn)如下所示:

def move_to_gap(self, slider, tracks):
    """
    拖動滑塊到缺口處
    :param slider: 滑塊
    :param tracks: 軌跡
    :return:
    """
    ActionChains(self.browser).click_and_hold(slider).perform()
    for x in tracks:
        ActionChains(self.browser).move_by_offset(xoffset=x, yoffset=0).perform()
    time.sleep(0.5)
    ActionChains(self.browser).release().perform()

這里傳入的參數(shù)為滑塊對象和運(yùn)動軌跡。首先調(diào)用 ActionChains 的 click_and_hold() 方法按住拖動底部滑塊,遍歷運(yùn)動軌跡獲取每小段位移距離,調(diào)用 move_by_offset() 方法移動此位移,最后調(diào)用 release() 方法松開鼠標(biāo)即可。

如果本文對您有幫助,記得點(diǎn)贊,收藏+關(guān)注,您的支持是我做大的動力!

下一篇我們將學(xué)習(xí)極驗(yàn)滑動驗(yàn)證碼識別,敬請期待!文章來源地址http://www.zghlxwxcb.cn/news/detail-836193.html

到了這里,關(guān)于Python爬蟲之極驗(yàn)滑動驗(yàn)證碼的識別的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Python爬蟲技術(shù)系列-05字符驗(yàn)證碼識別

    Python爬蟲技術(shù)系列-05字符驗(yàn)證碼識別

    OCR(Optical Character Recognition,光學(xué)字符識別)是指使用掃描儀或數(shù)碼相機(jī)對文本資料進(jìn)行掃描成圖像文件,然后對圖像文件進(jìn)行分析處理,自動識別獲取文字信息及版面信息的軟件。一般情況下,對于字符型驗(yàn)證碼的識別流程如下:主要過程可以分解為五個步驟: 圖片清理 ,

    2024年02月04日
    瀏覽(28)
  • 〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)?〗- 圖形驗(yàn)證碼OCR識別

    訂閱:新手可以訂閱我的其他專欄。免費(fèi)階段訂閱量1000+ python項(xiàng)目實(shí)戰(zhàn) Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,訂閱本專欄前必讀關(guān)于專欄〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)〗轉(zhuǎn)為付費(fèi)專欄的訂閱說明 作者:愛吃餅干的小白鼠。Python領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,20

    2024年02月10日
    瀏覽(22)
  • Selenium破解滑動驗(yàn)證碼的原理及解決思路

    ?? 視頻學(xué)習(xí): 文末有免費(fèi)的配套視頻可觀看 ??? 點(diǎn)擊文末小卡片 ,免費(fèi)獲取軟件測試全套資料,資料在手,漲薪更快 ?1、獲取頁面元素信息: 使用Selenium打開目標(biāo)網(wǎng)頁,并通過相關(guān)方法獲取滑塊、背景圖等元素的位置和屬性信息??梢允褂肧elenium提供的定位方法(如xpa

    2024年02月20日
    瀏覽(94)
  • 使用Selenium破解滑動驗(yàn)證碼的原理及解決思路

    使用Selenium破解滑動驗(yàn)證碼的原理及解決思路

    1、獲取頁面元素信息: 使用Selenium打開目標(biāo)網(wǎng)頁,并通過相關(guān)方法獲取滑塊、背景圖等元素的位置和屬性信息??梢允褂肧elenium提供的定位方法(如xpath、CSS選擇器等)來找到這些元素。 可以使用find_element_by_xpath或find_element_by_css_selector等方法來獲取滑塊和背景圖元素的位置和

    2024年02月09日
    瀏覽(103)
  • 【Python爬蟲項(xiàng)目實(shí)戰(zhàn)三】Ddddocr識別Ocr過開放貓驗(yàn)證碼(接Authorization認(rèn)證更新)

    【Python爬蟲項(xiàng)目實(shí)戰(zhàn)三】Ddddocr識別Ocr過開放貓驗(yàn)證碼(接Authorization認(rèn)證更新)

    本篇文章接《獲取Chatgpt3.5免費(fèi)接口文末付代碼(過Authorization認(rèn)證)》,由于上次更新了代碼后,對方做了驗(yàn)證,而且驗(yàn)證碼有點(diǎn)難識別,真人都有點(diǎn)難看明白,喜歡爬蟲類文章的可以訂閱我專欄哦 ??歡迎訂閱?? ??歡迎訂閱?? ?? Python爬蟲項(xiàng)目實(shí)戰(zhàn)系列文章 ??! ?

    2023年04月27日
    瀏覽(34)
  • Python scrapy爬取帶驗(yàn)證碼的列表數(shù)據(jù)

    首先所需要的環(huán)境:(我用的是Python2的,可以選擇python3,具體遇到的問題自行解決,目前我這邊幾百萬的數(shù)據(jù)量爬?。?環(huán)境: 直接貼代碼具體需要注意的特殊顏色標(biāo)出有注釋 pipelines存數(shù)據(jù)庫這個就不說了根據(jù)自己的業(yè)務(wù) 注:目前我網(wǎng)站驗(yàn)證碼比較簡單可以直接使用pytess

    2024年01月18日
    瀏覽(15)
  • python 使用ddddocr庫實(shí)現(xiàn)滑塊驗(yàn)證碼滑動驗(yàn)證

    使用ddddocr識別 該算法識別準(zhǔn)確率為95%左右,測試三輪,每輪測試100次 使用cv2識別 該算法識別準(zhǔn)確率為95%左右,測試三輪,每輪測試100次 構(gòu)造軌跡庫 圖片長度為300,理論上就300種軌跡,實(shí)際上應(yīng)該是200+種,還要減去滑塊圖的長度80 手動滑他個幾百次,并把距離和軌跡記錄下

    2024年01月21日
    瀏覽(15)
  • 全網(wǎng)首發(fā),Python解決某象滑動還原驗(yàn)證碼100%還原

    全網(wǎng)首發(fā),Python解決某象滑動還原驗(yàn)證碼100%還原

    與一般的滑動驗(yàn)證碼不同,某象的滑動還原驗(yàn)證碼是將圖像上下兩塊分割,然后在隨機(jī)一塊往右移動,將兩塊拼圖移動成完整的圖像才算成功,事實(shí)上,解決這類驗(yàn)證碼比普通的驗(yàn)證碼還要簡單 數(shù)據(jù)集: 我隨機(jī)采集了某象任意張數(shù)據(jù)集,將其標(biāo)注好,top和down代表的是原圖中

    2024年02月12日
    瀏覽(78)
  • python爬蟲selenium頁面滑動案例,作為一個Python程序員你還不會JetPack

    python爬蟲selenium頁面滑動案例,作為一個Python程序員你還不會JetPack

    def up_page(self): time.sleep(1) self.driver.find_element(By.XPATH,‘//*[text()=“下一頁”]’).click() def save_page(self, n=1): time.sleep(2) with open(f’第{n}頁.html’, ‘w’, encoding=‘utf-8’) as f: f.write(self.driver.page_source) def run(self): try: self.save_page() # 第一頁 for n in range(2, 6): # 第二三四五頁 self.scroll() s

    2024年04月22日
    瀏覽(26)
  • 極驗(yàn)系列文章一:極驗(yàn)三代 極驗(yàn)驗(yàn)證碼整體流程分析

    極驗(yàn)系列文章一:極驗(yàn)三代 極驗(yàn)驗(yàn)證碼整體流程分析

    作為一位js逆向愛好者,寫本篇文章在于純技術(shù)分析。無任何不良商業(yè)目的。旨在提高大家的網(wǎng)絡(luò)安全意識,共同維護(hù)網(wǎng)絡(luò)安全環(huán)境!請不要做任何有損國家或其他集體或個人的事情, 否者后果自負(fù)!本文如有任何侵權(quán)行為,請馬上聯(lián)系作者,立馬刪除。 目標(biāo)地址:aHR0cHM6

    2024年02月14日
    瀏覽(15)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包