摘要:運(yùn)行結(jié)果如果運(yùn)行結(jié)果一致則證明安裝成功。上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)請(qǐng)求庫(kù)安裝下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)數(shù)據(jù)庫(kù)的安裝
上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---2、請(qǐng)求庫(kù)安裝:GeckoDriver、PhantomJS、Aiohttp
下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---數(shù)據(jù)庫(kù)的安裝:MySQL、MongoDB、Redis
抓取下網(wǎng)頁(yè)代碼之后,下一步就是從網(wǎng)頁(yè)中提取信息,提取信息的方式有多種多樣,可以使用正則來(lái)提取,但是寫(xiě)起來(lái)會(huì)相對(duì)比較繁瑣。在這里還有許多強(qiáng)大的解析庫(kù),如 LXML、BeautifulSoup、PyQuery 等等,提供了非常強(qiáng)大的解析方法,如 XPath 解析、CSS 選擇器解析等等,利用它們我們可以高效便捷地從從網(wǎng)頁(yè)中提取出有效信息。
本節(jié)我們就來(lái)介紹一下這些庫(kù)的安裝過(guò)程。
1.2.1 LXML的安裝LXML 是 Python 的一個(gè)解析庫(kù),支持 HTML 和 XML 的解析,支持 XPath 解析方式,而且解析效率非常高。
1. 相關(guān)鏈接官方網(wǎng)站:http://lxml.de
GitHub:https://github.com/lxml/lxml
PyPi:https://pypi.python.org/pypi/...
2. Mac下的安裝pip3 install lxml
如果產(chǎn)生錯(cuò)誤,可以執(zhí)行如下命令將必要的類(lèi)庫(kù)安裝:
xcode-select --install
之后再重新運(yùn)行 Pip 安裝就沒(méi)有問(wèn)題了。
LXML 是一個(gè)非常重要的庫(kù),后面的 BeautifulSoup、Scrapy 框架都需要用到此庫(kù),所以請(qǐng)一定安裝成功。
3. 驗(yàn)證安裝安裝完成之后,可以在 Python 命令行下測(cè)試。
$ python3 >>> import lxml
如果沒(méi)有錯(cuò)誤報(bào)出,則證明庫(kù)已經(jīng)安裝好了。
1.2.2 BeautifulSoup的安裝BeautifulSoup 是 Python 的一個(gè) HTML 或 XML 的解析庫(kù),我們可以用它來(lái)方便地從網(wǎng)頁(yè)中提取數(shù)據(jù),它擁有強(qiáng)大的 API 和多樣的解析方式,本節(jié)我們了解下它的安裝方式。
1. 相關(guān)鏈接官方文檔:https://www.crummy.com/softwa...
中文文檔:https://www.crummy.com/softwa...
PyPi:https://pypi.python.org/pypi/...
2. 準(zhǔn)備工作BeautifulSoup 的 HTML 和 XML 解析器是依賴于 LXML 庫(kù)的,所以在此之前請(qǐng)確保已經(jīng)成功安裝好了 LXML 庫(kù),具體的安裝方式參見(jiàn)上節(jié)。
3. Pip 安裝目前 BeautifulSoup 的最新版本是 4.x 版本,之前的版本已經(jīng)停止開(kāi)發(fā)了,推薦使用 Pip 來(lái)安裝,安裝命令如下:
pip3 install beautifulsoup4
命令執(zhí)行完畢之后即可完成安裝。
4. 驗(yàn)證安裝安裝完成之后可以運(yùn)行下方的代碼驗(yàn)證一下。
from bs4 import BeautifulSoup soup = BeautifulSoup("Hello
", "lxml") print(soup.p.string)
運(yùn)行結(jié)果:
Hello
如果運(yùn)行結(jié)果一致則證明安裝成功。
注意在這里我們雖然安裝的是 beautifulsoup4 這個(gè)包,但是在引入的時(shí)候是引入的 bs4,這是因?yàn)檫@個(gè)包源代碼本身的庫(kù)文件夾名稱就是 bs4,所以安裝完成之后,這個(gè)庫(kù)文件夾就被移入到我們本機(jī) Python3 的 lib 庫(kù)里,所以識(shí)別到的庫(kù)文件名稱就叫做 bs4,所以我們引入的時(shí)候就引入 bs4 這個(gè)包。
因此,包本身的名稱和我們使用時(shí)導(dǎo)入的包的名稱并不一定是一致的。
1.2.3 PyQuery的安裝PyQuery 同樣是一個(gè)強(qiáng)大的網(wǎng)頁(yè)解析工具,它提供了和 jQuery 類(lèi)似的語(yǔ)法來(lái)解析 HTML 文檔,支持 CSS 選擇器,使用非常方便,本節(jié)我們了解下它的安裝方式。
1. 相關(guān)鏈接GitHub:https://github.com/gawel/pyquery
PyPi:https://pypi.python.org/pypi/...
官方文檔:http://pyquery.readthedocs.io
2. Pip安裝pip3 install pyquery3. 驗(yàn)證安裝
安裝完成之后,可以在 Python 命令行下測(cè)試。
$ python3 >>> import pyquery
如果沒(méi)有錯(cuò)誤報(bào)出,則證明庫(kù)已經(jīng)安裝好了。
1.2.4 Tesserocr的安裝爬蟲(chóng)過(guò)程中難免會(huì)遇到各種各樣的驗(yàn)證碼,而大多數(shù)驗(yàn)證碼還是圖形驗(yàn)證碼,這時(shí)候我們可以直接用 OCR 來(lái)識(shí)別。
1. OCROCR,即 Optical Character Recognition,光學(xué)字符識(shí)別。是指通過(guò)掃描字符,然后通過(guò)其形狀將其翻譯成電子文本的過(guò)程。那么對(duì)于圖形驗(yàn)證碼來(lái)說(shuō),它都是一些不規(guī)則的字符,但是這些字符確實(shí)是由字符稍加扭曲變換得到的內(nèi)容。
例如這樣的驗(yàn)證碼,如圖 1-22 和 1-23 所示:
圖 1-22 驗(yàn)證碼
圖 1-23 驗(yàn)證碼
對(duì)于這種驗(yàn)證碼,我們便可以使用 OCR 技術(shù)來(lái)將其轉(zhuǎn)化為電子文本,然后爬蟲(chóng)將識(shí)別結(jié)果提交給服務(wù)器,便可以達(dá)到自動(dòng)識(shí)別驗(yàn)證碼的過(guò)程。
Tesserocr 是 Python 的一個(gè) OCR 識(shí)別庫(kù),但其實(shí)是對(duì) Tesseract 做的一層 Python API 封裝,所以它的核心是 Tesseract,所以在安裝 Tesserocr 之前我們需要先安裝 Tesseract,本節(jié)我們來(lái)了解下它們的安裝方式。
Tesserocr GitHub:https://github.com/sirfz/tess...
Tesserocr PyPi:https://pypi.python.org/pypi/...
Tesseract下載地址:http://digi.bib.uni-mannheim....
Tesseract GitHub:https://github.com/tesseract-...
Tesseract 語(yǔ)言包:https://github.com/tesseract-...
Tesseract 文檔:https://github.com/tesseract-...
3. Mac下的安裝Mac 下首先使用 Homebrew 安裝 Imagemagick 和 Tesseract 庫(kù):
brew install imagemagick brew install tesseract
接下來(lái)再安裝 Tesserocr 即可:
pip3 install tesserocr pillow
這樣我們便完成了 Tesserocr 的安裝。
4. 驗(yàn)證安裝接下來(lái)我們可以使用 Tesseract 和 Tesserocr 來(lái)分別進(jìn)行測(cè)試。
下面我們以如下的圖片為樣例進(jìn)行測(cè)試,如圖 1-26 所示:
圖 1-26 測(cè)試樣例
圖片鏈接為:https://raw.githubusercontent...,可以直接保存或下載。
我們首先用命令行進(jìn)行測(cè)試,將圖片下載保存為 image.png,然后用 Tesseract 命令行測(cè)試,命令如下:
tesseract image.png result -l eng && cat result.txt
運(yùn)行結(jié)果:
Tesseract Open Source OCR Engine v3.05.01 with Leptonica Python3WebSpider
我們調(diào)用了 tesseract 命令,第一個(gè)參數(shù)為圖片名稱,第二個(gè)參數(shù) result 為結(jié)果保存的目標(biāo)文件名稱,-l 指定使用的語(yǔ)言包,在此使用 eng 英文,然后再用 cat 命令將結(jié)果輸出。
第二行的運(yùn)行結(jié)果便是圖片的識(shí)別結(jié)果,Python3WebSpider。
我們可以看到這時(shí)已經(jīng)成功將圖片文字轉(zhuǎn)為電子文本了。
然后我們還可以利用 Python 代碼來(lái)測(cè)試,這里就需要借助于 Tesserocr 庫(kù)了,測(cè)試代碼如下:
import tesserocr from PIL import Image image = Image.open("image.png") print(tesserocr.image_to_text(image))
如果在運(yùn)行期間python3閃退,出現(xiàn)下面錯(cuò)誤:
!strcmp(locale, "C"):Error:Assert failed:in file baseapi.cpp, line 209就需要這樣運(yùn)行了:
import locale locale.setlocale(locale.LC_ALL,"C") import tesserocr from PIL import Image image = Image.open("image.png") print(tesserocr.image_to_text(image))
在這里我們首先利用 Image 讀取了圖片文件,然后調(diào)用了 tesserocr 的 image_to_text() 方法,再將將其識(shí)別結(jié)果輸出。
運(yùn)行結(jié)果:
Python3WebSpider
另外我們還可以直接調(diào)用 file_to_text() 方法,也可以達(dá)到同樣的效果:
import tesserocr print(tesserocr.file_to_text("image.png"))
運(yùn)行結(jié)果:
Python3WebSpider
如果成功輸出結(jié)果,則證明 Tesseract 和 Tesserocr 都已經(jīng)安裝成功。
上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---2、請(qǐng)求庫(kù)安裝:GeckoDriver、PhantomJS、Aiohttp
下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---數(shù)據(jù)庫(kù)的安裝:MySQL、MongoDB、Redis
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44018.html
摘要:的安裝是一個(gè)輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù),以表的形式來(lái)存儲(chǔ)數(shù)據(jù),本節(jié)我們來(lái)了解下它的安裝方式。相關(guān)鏈接官方網(wǎng)站下載地址中文教程下的安裝推薦使用安裝,執(zhí)行命令即可。上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)解析庫(kù)的安裝下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)存儲(chǔ)庫(kù)的安裝 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---3、解析庫(kù)的安裝:LXML、BeautifulSoup、PyQuery、Tesserocr下一篇文章:Python3網(wǎng)絡(luò)...
摘要:相關(guān)鏈接官方文檔安裝推薦使用安裝,命令如下運(yùn)行完畢之后即可完成的安裝。上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)數(shù)據(jù)庫(kù)的安裝下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)庫(kù)的安裝 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---4、數(shù)據(jù)庫(kù)的安裝:MySQL、MongoDB、Redis下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---6、Web庫(kù)的安裝:Flask、Tornado 在前面一節(jié)我們介紹了幾個(gè)數(shù)據(jù)庫(kù)的安裝方式,但這僅僅是用來(lái)存...
摘要:列存儲(chǔ)數(shù)據(jù)庫(kù),代表有等。運(yùn)行結(jié)果返回結(jié)果是字典形式,即代表執(zhí)行成功,代表影響的數(shù)據(jù)條數(shù)。上一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)數(shù)據(jù)存儲(chǔ)關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)數(shù)據(jù)存儲(chǔ)非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ) 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---32、數(shù)據(jù)存儲(chǔ):關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ):MySQL下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---34、數(shù)據(jù)存儲(chǔ):非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ):Redis NoSQL,全稱 No...
摘要:關(guān)系型數(shù)據(jù)庫(kù)有多種,如等等。一致性與原子性是密切相關(guān)的。持久性持續(xù)性也稱永久性,指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。如此一來(lái),我們就可以實(shí)現(xiàn)主鍵不存在便插入數(shù)據(jù),存在則更新數(shù)據(jù)的功能了。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---31、數(shù)據(jù)存儲(chǔ):文件存儲(chǔ)下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---33、數(shù)據(jù)存儲(chǔ):非關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ):MongoDB 關(guān)系型數(shù)據(jù)...
摘要:在本書(shū)中用到的一些服務(wù)程序主要有。本節(jié)來(lái)分別介紹它們的安裝方法。的安裝是一個(gè)輕量級(jí)的服務(wù)程序,簡(jiǎn)單易用靈活,在本書(shū)中我們主要用它來(lái)做一些服務(wù),本節(jié)我們來(lái)了解下它的安裝方式。相關(guān)鏈接官方文檔安裝執(zhí)行完畢之后即可完成安裝。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---5、存儲(chǔ)庫(kù)的安裝:PyMySQL、PyMongo、RedisPy、RedisDump下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)-...
閱讀 1175·2021-10-11 10:59
閱讀 1962·2021-09-29 09:44
閱讀 852·2021-09-01 10:32
閱讀 1423·2019-08-30 14:21
閱讀 1869·2019-08-29 15:39
閱讀 2972·2019-08-29 13:45
閱讀 3531·2019-08-29 13:27
閱讀 2005·2019-08-29 12:27