- 查找tesseract訓(xùn)練的相關(guān)資料内狗,嘗試訓(xùn)練tesseract
- 嘗試使用selenium爬取京東上某商品的價(jià)格與名稱
筆記
動(dòng)態(tài)網(wǎng)頁爬蟲
- Ajax和動(dòng)態(tài)HTML
- Ajax(Asynchronous JavaScript and XML)
- 經(jīng)過JS渲染的網(wǎng)頁直接去分析后臺(tái)請求是狠復(fù)雜的,在Python中可以利用PhantomJS和Selenium這兩個(gè)庫幫助完成JS解析况毅。
- PhantomJS
- PhantomJS是一個(gè)無界面的,可腳本編程的WebKit瀏覽器引擎走搁。它原生支持多種web 標(biāo)準(zhǔn):DOM 操作,CSS選擇器,JSON敏晤,Canvas 以及SVG。
- 嗯缅茉,就是一個(gè)沒有界面的瀏覽器嘴脾。它會(huì)把網(wǎng)頁加載的內(nèi)容儲(chǔ)存到內(nèi)存上。
- 下載地址:PhantomJS官網(wǎng)
- 安裝:超簡單蔬墩,解壓縮就好译打。Windows添加一下環(huán)境變量。
- 打開cmd拇颅,執(zhí)行
phantomjs -v
奏司,出現(xiàn)版本號,就說明安裝成功了樟插。 - 執(zhí)行
phantomjs
结澄,進(jìn)入Phantom環(huán)境哥谷。可以根據(jù)官方文檔進(jìn)行操作了麻献。
- Selenium
自動(dòng)化測試工具们妥。它支持各種瀏覽器,包括Chrome勉吻,Safari监婶,F(xiàn)irefox等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個(gè)Selenium的插件齿桃,那么便可以方便地實(shí)現(xiàn)Web界面的測試惑惶。換句話說叫 Selenium 支持這些瀏覽器驅(qū)動(dòng)。
-
安裝:pip下載安裝短纵,或官網(wǎng)下載安裝带污。
C:\Users\yishikeji-05>pip install selenium Collecting selenium Downloading selenium-3.0.2-py2.py3-none-any.whl (915kB) 100% |████████████████████████████████| 921kB 439kB/s Installing collected packages: selenium Successfully installed selenium-3.0.2
【這部分筆記參考了靜覓這個(gè)博客,有一系列關(guān)于Python爬蟲的文章香到,值得一看】
文字圖像識(shí)別:驗(yàn)證碼
- ORC——將圖像翻譯成文字鱼冀,光學(xué)文字識(shí)別(Optical Character Recognition)
- ORC庫
- Pillow——圖像庫(已經(jīng)有了)
- Teseract——文字識(shí)別,GitHub資源
- Teseract安裝
- Mac OS:
brew install tesseract
- windows: 下載exe的安裝文件悠就。我安裝在了
D:\Program Files\Tesseract-OCR
- Mac OS:
Tesseract的使用
-
保存一張圖片到Tesseract的安裝路徑下千绪,擴(kuò)展名改為
tif
。 -
進(jìn)入cmd命令窗梗脾,
cd D:\Program Files\Tesseract-OCR
進(jìn)入安裝目錄荸型,執(zhí)行命令:>tesseract pic.tif textoutput Tesseract Open Source OCR Engine v3.05.00dev with Leptonica
-
然后在安裝目錄下就出現(xiàn)了
textoutput.txt
的文件。txt文件內(nèi)容:
This is some text, written in Arial, that will be read by Tesseract. Here are some symbols: !@#$%"&'()
作業(yè)
1. 嘗試訓(xùn)練tesseract
- 訓(xùn)練tesseract的GitHub文檔
訓(xùn)練步驟:
下載并安裝jTessBoxEditor工具炸茧。
準(zhǔn)備一張用來訓(xùn)練的tiff格式圖片瑞妇。
將10張圖片合并為一張tiff格式的圖片
orderNo.tif
。-
Make Box Files:打開命令行梭冠,進(jìn)入安裝目錄辕狰,執(zhí)行以下代碼。
tesseract orderNo.tif orderNo batch.nochop makebox
使用jTessBoxEditor打開orderNo.tif文件妈嘹,需要記住的是第2步生成的orderNo.box要和這個(gè)orderNo.tif文件同在一個(gè)目錄下。逐個(gè)校正文字绍妨,后保存润脸。
-
Run Tesseract for Training:執(zhí)行如下命令
tesseract orderNo.tif orderNo nobatch box.train
-
Compute the Character Set:執(zhí)行如下命令
unicharset_extractor orderNo.box
-
新建字體文件“font_properties”,執(zhí)行命令
mftraining.exe -F font_properties -U unicharset orderNo.tr
-
Clustering
cntraining orderNo.tr
此時(shí)他去,在目錄下應(yīng)該生成若干個(gè)文件了(
并沒有)毙驯,把unicharset,inttemp灾测,normproto爆价,pffmtable這四個(gè)文件加上前綴“orderNo.”。然后輸入命令:
combine_tessdata orderNo.
以上是老師給的資料中的訓(xùn)練步驟,然而我嘗試之后并沒有成功铭段。GitHub文檔所介紹的像是用Linux系統(tǒng)做的骤宣,究竟也沒有搞明白。
2. 使用selenium爬取京東上某商品的價(jià)格與名稱
代碼部分:
from selenium import webdriver
import time
driver = webdriver.PhantomJS()
driver.get("http://item.jd.com/3438929.html#")
#driver.page_source
time.sleep(1)
price = driver.find_element_by_class_name("p-price").text
print('商品名稱:', driver.title, '\n', '商品價(jià)格:', price)
driver.close()
結(jié)果輸出:
商品名稱: 【JDtabJ01】JDtab 魅族 哈曼 富士康 樂視 京東聯(lián)袂打造7.9英寸平板電腦 2K視網(wǎng)膜屏 4GB+64GB 香檳金 J01 【行情 報(bào) 價(jià) 價(jià)格 評測】-京東
商品價(jià)格: ¥1499.00
做的很勉強(qiáng)序愚,用selenium提取信息不太熟練憔披,總是出現(xiàn)InvalidSelectorException
這個(gè)錯(cuò)誤。