日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 图片路径混淆,爬虫遇到了字符图片混淆。pytesseract识别图片字符

發布時間:2024/4/14 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 图片路径混淆,爬虫遇到了字符图片混淆。pytesseract识别图片字符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 打字的小強 于 2020-6-11 14:05 編輯

最近爬蟲遇到了字符圖片混淆的反爬。如圖所示,文字和圖片混在一起,需要對圖片進行識別,圖片很小,這時候我就想到了pytesseract,一直知道但是從未去實際操作,今天講講基本步驟

QQ截圖20200610131008.png (15.12 KB, 下載次數: 0)

2020-6-11 11:34 上傳

QQ截圖20200611140412.png (33.22 KB, 下載次數: 0)

2020-6-11 14:04 上傳

一.搭建環境

tesseract是很多語言都可以調用的,簡而言之是一個ocr本地識別引擎,所以要裝本地環境,并不是pip install 就可以的。并不是python的專利,可以用這個訓練自己的庫,搭建環境還需要下載簡體中文包

下載tesseract-ocr-setup-4.0.0-alpha.20180109.exe進行安裝,可以選擇安裝位置,記住安裝位置,我的位置是D:\minitool\Tesseract-OCR

QQ截圖20200610132338.png (35.64 KB, 下載次數: 0)

2020-6-11 11:38 上傳

下載簡體中文識別庫chi_sim.traineddata,放到安裝位置的tesseract安裝目錄下tessdata的文件下

QQ截圖20200610132527.png (36.32 KB, 下載次數: 0)

2020-6-11 11:40 上傳

接下來做環境變量的配置,打開我的電腦,右鍵點擊屬性,計算機名,域工作組設置點擊更改設置,點擊高級,點擊環境變量。在用戶變量里面把tesseract安裝目錄添加進入path里面,在系統變量添加一個變量名為TESSDATA_PREFIX,變量值為字庫存放目錄的環境變量

QQ截圖20200611115112.png (79.94 KB, 下載次數: 0)

2020-6-11 11:51 上傳

QQ截圖20200611115242.png (17.87 KB, 下載次數: 0)

2020-6-11 11:53 上傳

接下來驗證是否安裝成功了里面輸入 tesseract -v,如下圖就是安裝成功了

QQ截圖20200610132700.png (22.15 KB, 下載次數: 0)

2020-6-11 11:54 上傳

二.測試

找到所有的圖片使用正則,我要把所有的標簽和對應的字符做成一個python字典,后面就好替換

我這里只提供一個測試的例子

[Python] 純文本查看 復制代碼def ocrs(names):

im = cv2.imread(names)

config = ("-l chi_sim --oem 0 --psm 10") #這些參數要做出說明的

datas = pytesseract.image_to_string(im, config=config) #調用pytesseract識別,

if datas: #判斷有沒有識別結果

c_datas = easygui.ccbox(msg='識別結果是' + datas, title=' ', choices=('True', 'false'),

image=names) #easygui一個詢問框,人工確認是否識別正確

if not c_datas:

#如果識別不正確,enterbox人工輸入,收集最終結果

datas = easygui.enterbox(msg="請輸入正確的字:", title=' ', default=' ', strip=True,

image=names, root=None)

else:

# 如果pytesseract識別結果為空,enterbox人工輸入,收集最終結果

datas = easygui.enterbox(msg="請輸入正確的字:", title=' ', default=' ', strip=True,

image=names, root=None)

#返回最終結果。最壞的結果就是人工也沒有輸入

return datas

def img_to_string():

paths = "**********" #填寫一個文本的路徑,讀取本文的信息,這里面有很多的標簽

datas = open(paths, encoding='utf-8')

pattern = re.compile("") #找到所有img的正則

str2 = pattern.findall(datas) #找到所有的img標簽

for i in str2:

#現在有很多的img的標簽被匹配出來了

pattern = re.compile("/.*?\\.png") #正則找到其中的鏈接,圖片文件格式都是png格式

str3 = pattern.findall(i) #正則找到其中的鏈接

urls = "*********"+str3[0] #*號是這個目標站點的域名,拼裝起來,下面requests保存圖片

if urls not in font_list : #為了防止同一個圖片下載很多遍,過濾一下

font_list.append(urls) #沒有就保存在數組里面,給上面判斷

names = str3[0][17:-4] #提取圖片的名稱,保存文件的地方用

datass = requests.get(urls,verify=False) #下載圖片

print(urls)

with open('./verify/' + str(names) + '.png', 'wb') as file:

file.write(datass.content) #保存圖片的二進制的數據

result = ocrs('./verify/' + str(names) + '.png') #把文件腳本專門的識別函數識別,返回實際的識別的文字

if result:

print(result)

font_dict[i]=result #有結果就加入字典保存

else:

#人工也沒有輸入的結果

print("null")

font_dict[i] = "null"

效果圖字庫標記少,幾十個文件公用20多個字,可以這樣弄,先一一把對應關系找出來,在進行替換,下面的替換我就不講了,寫的比較垃圾,哈哈,不獻丑了。下圖就是效果,所有識別過都會記錄到字典:

trains.gif (458.81 KB, 下載次數: 0)

2020-6-11 12:57 上傳

補充:

pytesseract調用的時候參數說明,這些參數我調了很久都沒有準確的,完美的,后面只好做彈窗確認,我們的圖片很小,只有一個字符。

--psm 10 這就是把整個圖當一個字符來識別

--oem 0 舊的引擎,一共有四種,都試了,這種比較準

把參數列給大家看下

[Asm] 純文本查看 復制代碼OCR選項:

--tessdata dir PATH指定tessdata PATH的位置。

--用戶字路徑指定用戶字文件的位置。

--用戶模式路徑指定用戶模式文件的位置。

--dpi值指定輸入圖像的dpi。

-l LANG[+LANG]指定用于OCR的語言。

-c VAR=配置變量的值設置值。

允許多個-c參數。

--psm NUM指定頁面分段模式。

--oem NUM指定OCR引擎模式。

注意:這些選項必須在任何配置文件之前出現。

頁面分割模式:

僅限0方向和腳本檢測(OSD)。

1個帶有OSD的自動頁面分割。

2自動頁面分割,但沒有OSD或OCR。(未實施)

3全自動頁面分割,但沒有OSD。(默認)

4假設一列大小可變的文本。

5假設一個垂直對齊的文本塊。

6假設一個統一的文本塊。

7將圖像視為單個文本行。

8將圖像視為一個單詞。

9將圖像視為一個圓圈中的單個單詞。

10將圖像視為單個字符。

11稀疏文本。找盡可能多的文本沒有特別的順序。

12帶OSD的稀疏文本。

13原始生產線。將圖像視為單個文本行,

繞過特定于Tesseract的攻擊。

OCR引擎模式:

僅限0舊版引擎。

僅限1臺神經網絡LSTM發動機。

2個傳統+LSTM引擎。

3默認,基于可用的內容。

相關附件

鏈接:https://pan.baidu.com/s/13Ry_cDnbteIUHMr_33oi4w

提取碼:fxfl

三.總結

Tesseract還是很方便的,還可以做一些其他的簡單的驗證碼識別,網上也有很多的例子。一開始弄了半天,因為參數的問題,一直沒有返回值,本來是想接入騰訊或者百度的第三方接口來識別的,結果發現并沒有多少字。最后來在使用過程中加了一個群,里面還是有很多的其他用法,還可以用Tesseract訓練出自己的字庫,又漲見識了。

總結

以上是生活随笔為你收集整理的php 图片路径混淆,爬虫遇到了字符图片混淆。pytesseract识别图片字符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜xxxx| 久久久久久久国产精品 | 女人裸体无遮挡 | 亚洲国产av一区二区 | 国产精品第十页 | 国模精品一区 | 波多野结衣在线免费视频 | 亚洲男女激情 | 亚洲国产精品99 | 精品日韩在线视频 | 国产午夜精品理论片 | 国产一级淫片a | 国产黄在线 | 免费污视频在线观看 | 国产成人av电影 | 自拍视频网站 | 2018av在线| 日本热久久 | 一吻定情2013日剧 | 国产人妻人伦精品1国产盗摄 | 婷婷视频一区二区三区 | 国产午夜一区二区三区 | 日本捏奶吃奶的视频 | 欧美日韩色图片 | 久久aⅴ国产欧美74aaa | 老牛影视少妇在线观看 | 91官网在线观看 | 国产又粗又黄又爽又硬 | 五月天久久婷婷 | 深爱婷婷| 暖暖日本视频 | 床戏高潮做进去大尺度视频 | 青娱乐精品视频 | 国产精品一区二区三区在线免费观看 | 俄罗斯破处 | 久久网亚洲 | av在线大全 | 成人网页在线观看 | 久久精品一二三 | 国产成人综合在线观看 | 国内毛片毛片 | 精东影业一区二区三区 | 中文字幕久久精品 | 免费观看黄网站 | 日韩中文字幕一区二区三区四区 | 在线看毛片网站 | 成人黄色在线看 | 天天添天天射 | 精品二区在线 | 五月av| 黄色三级三级三级 | 日本视频在线观看 | 日本亚洲一区二区三区 | 亚洲视频123 | 精品丰满少妇一区二区三区 | 久久96视频 | 亚洲一区亚洲二区 | 久久黄色片 | 好吊日免费视频 | 欧美怡红院视频一区二区三区 | 久久免费公开视频 | 91国产在线免费观看 | 成人六区 | 精品美女在线 | 开心色婷婷 | 精品999久久久一级毛片 | 欧美色亚洲色 | 男插女视频在线观看 | 99爱精品| 泰坦尼克号3小时49分的观看方法 | 天天操天天草 | 日韩av免费一区 | 寂寞少妇让水电工爽hd | 亚洲第九十七页 | 无码人妻丰满熟妇区bbbbxxxx | 88av网站| 国产日韩视频在线 | 成年人晚上看的视频 | 日韩在线三级 | 日本黄色高清视频 | 亚洲制服丝袜一区 | 免费观看一区 | 美女的奶胸大爽爽大片 | 五月激情婷婷网 | 国模小丫大尺度啪啪人体 | 成年人看的黄色片 | 黄色免费网站观看 | 欧美久久伊人 | 欧美肉大捧一进一出免费视频 | 亚洲男人天堂2020 | 正在播放木下凛凛xv99 | 啪啪福利视频 | 在线精品视频免费观看 | 在线观看免费小视频 | 无码人妻精品一区二区三区99v | 91视 | 国产日产亚洲精品 | 艳妇臀荡乳欲伦交换gif | 青青草国产在线 |