1. 程式人生 > >Windows環境下python爬蟲常用庫和工具的安裝(UrlLib、Re、Requests、Selenium、lxml、Beautiful Soup、PyQuery 、PyMySQL等等)

Windows環境下python爬蟲常用庫和工具的安裝(UrlLib、Re、Requests、Selenium、lxml、Beautiful Soup、PyQuery 、PyMySQL等等)

本文列出了使用python進行爬蟲時所需的常用庫和工具的安裝過程,基本上只有幾行命令列的功夫就可以搞定,還是十分簡單的。

一、UrlLib 與 Re

這兩個庫是python的內建庫,若系統中已經成功安裝了python的話,這兩個庫一般是沒有什麼問題的。

驗證

開啟命令列,進入python互動模式。使用以下命令:

import urllib
import urllib.request
urllib.request.urlopen(‘http://www.baidu.com’)
也就是先匯入urllib以及其下的request庫,並傳入百度的網址進行測試如下圖:
在這裡插入圖片描述
回車後返回了值,說明這個庫是可以正常使用的。
再匯入re,沒有報錯,那麼一切ok。如下圖:
在這裡插入圖片描述

二、Requests

這個庫要的安裝要用到第三方工具(pip)
首先進入命令列模式,進行pip的安裝:
pip3 install requests
在這裡插入圖片描述

驗證

進入python互動模式,輸入以下命令並回車:
import requests
requests.get(‘http://www.baidu.com’)
在這裡插入圖片描述
得到返回值,說明這個庫可以正常使用了。

三、Selenium

這是一個用來驅動瀏覽器的庫,主要用來做自動化測試,可以拿到網頁經過js渲染後的內容。
首先進入python互動模式,看看這個庫是否已經安裝。輸入以下命令並回車:
import selenium
在這裡插入圖片描述
如果看到了上圖的報錯,恭喜你,咱們還沒安裝呢。
那麼就用pip來安裝吧~
使用命令列模式

,輸入以下命令並回車:
在這裡插入圖片描述
如果所示,安裝完畢。

驗證

在python互動模式下,輸入以下命令並回車:
import selenium
如果沒有出現之前的報錯,就說明安裝成功了。
接下來繼續測試一下這個庫中的命令。
在python互動模式下,輸入以下命令並回車:
from selenium import webdriver
driver = webdriver.Chrome()
在這裡插入圖片描述
這裡試圖建立一個瀏覽器物件並且直接啟動Chrome瀏覽器,但是現在缺少一個Chrome驅動器,因此報錯了。所以接下來我們需要安裝這個ChromeDriver。

ChromeDriver的安裝

在搜尋引擎中搜索ChromeDriver,一般第一個就是其官網,咱們進去看看。

在這裡插入圖片描述
箭頭所指的地方釋出了最新版本,咱們下它!
在這裡插入圖片描述
進入之後看到有許多版本,我們下載windows那個。
在這裡插入圖片描述
把下載好的壓縮包解壓後會得到一個可執行檔案,我們把它解壓到某個已經配置好環境變數的路徑下(比如Anaconda3目錄下)
在這裡插入圖片描述
在這裡插入圖片描述
或者把這個exe放到Scipts資料夾下也是可以的,那麼它將和pip處在同一級的目錄下。
在這裡插入圖片描述
以上的目錄都是已經配置好環境變數的,那麼現在系統就可以找到這個chromedriver了。在命令列模式下,輸入以下命令並回車:
chromedriver
在這裡插入圖片描述
可以看到已經ok了。
現在再次進行剛才的嘗試,在python互動模式下,輸入以下命令並回車:
from selenium import webdriver
driver = webdriver.Chrome()
如果你看到瀏覽器一閃而過,並且命令列視窗中給出報錯資訊,別抓狂,這可能是由於chrome的版本不匹配導致的。 所以就需要換一個版本使其相容。
http://chromedriver.chromium.org/downloads
進入以上的網址(也就是之前下載chromedriver的地方),並往下瀏覽,可以看到更早時候的版本。選擇一個更低的版本進行下載,並重復之前的步驟,最後替換掉之前下載的exe檔案。那麼這就完成了一個版本的更換。

那麼現在再試一次吧~
在python互動模式下,輸入以下命令並回車:
from selenium import webdriver
driver = webdriver.Chrome()
在這裡插入圖片描述
終於乖乖蹦出來了一個瀏覽器!
繼續測試:
python互動模式下,輸入以下命令並回車:
driver.get(‘http://www.baidu.com’)
在這裡插入圖片描述
可以看到,該瀏覽器跳轉到了百度的介面。
再換個網址試試?
python互動模式下,輸入以下命令並回車:
driver.get(‘https://www.python.org’)
在這裡插入圖片描述在這裡插入圖片描述
可以看到,瀏覽器又跳轉到了python的官網。
緊接著我們使用page_source語句就可以打印出網頁的原始碼了:
driver.page_source
在這裡插入圖片描述
在這裡插入圖片描述
可以看到視窗中打印出了一堆程式碼,反正我是看得密集恐懼症都犯了。
其實這就是上面python官網頁面的原始碼了。
總之~通過selenium庫,我們就可以拿到js渲染過的網頁的內容了。

四、PhantomJs

現在我們覺得在做爬蟲時,一直存在一個瀏覽器的介面擺在那兒太不方便了,有沒有一個沒有瀏覽器介面的執行模式呢?
PhantomJs就是一個安靜的美男子(無介面的瀏覽器)。有了它,就可以讓它在後臺靜默的執行,這樣爬蟲時我們只需要看著命令列就行了。
現在我們到官網去下載它:
http://phantomjs.org/download.html
你你自己去搜索也行~在這裡插入圖片描述
找到windows版本,點選就可以下載了壓縮包了。
下載好之後解壓(隨便解壓到哪兒),解壓後可以看到,在bin目錄下有一個exe檔案。
在這裡插入圖片描述
現在我們要把它配置到環境變數中去:
計算機–>右鍵–>屬性–>高階系統設定–>環境變數
在這裡插入圖片描述
編輯使用者變數中的PATH:
在這裡插入圖片描述
把exe檔案所在bin的目錄拷貝到PATH編輯欄的最後(注意與之前的路徑用半形的分號隔開)。
在這裡插入圖片描述
確定後就配置好環境變量了。
現在在命令列模式下輸入phantomjs並回車:
在這裡插入圖片描述
竟然不行,有點尷尬啊,我去重啟試試……
(1分鐘後)我又回來了,現在再試一次看看:
在這裡插入圖片描述
果然重啟後就可以了,不知道是否一定要重啟呢?
如上圖,現在就進入了互動模式,現在試試執行一些js程式,因為這裡此時相當於一個網路控制檯。
console.log(‘Hello World!’)
在這裡插入圖片描述
使用ctrl+C可以切換回命令列模式。
現在使用python互動模式
依次使用如下命令:
from selenium import webdriver
driver=webdriver.PhantomJS()
driver.get(‘http://www.baidu.com’)
driver.page_source
在這裡插入圖片描述

可以看到,讓我密集恐懼症的東西又被打印出來了,這就是百度首頁的原始碼了,比起上次,這次我們並沒有看到瀏覽器的視窗,這就是PhantomJs的好處了。

五、lxml

lxml是python的一個解析庫,支援HTML和XML的解析,支援XPath解析方式,而且解析效率非常高。
安裝方法:在命令列模式下,輸入pip3 install lxml並回車。
在這裡插入圖片描述
如果已經安裝好會出現上圖提示,如果未安裝過,會執行安裝過程(如下圖),稍微等待就好了。
在這裡插入圖片描述

未順利安裝

( 順利安裝可以跳過此節)
如果未fan牆或是網路原因導致安裝過程過慢,那麼去搜索lxml:
在這裡插入圖片描述
在這裡插入圖片描述
可以選擇一個whl來下載並且使用pip安裝,前提是必須安裝whell庫(使用pip3 install wheel命令)。
安裝過程:
先下載好whl檔案(注意下載的是對應win系統的),在資料夾中顯示,並右鍵–>屬性–>安全,可以看到檔案的完整路徑。
在這裡插入圖片描述

在這裡插入圖片描述
把這個路徑複製下來,在命令列中執行命令:
pip3 install +路徑。
(在命令列視窗屬性中勾選快速編輯模式,可以直接在游標處右擊就可以完成複製)
在這裡插入圖片描述
注意要先安裝wheel庫:pip3 install wheel

在這裡插入圖片描述
如果出現lxml-3.7.3-cp35-cp35m-win32.whl is not a supported wheel on this platform.紅色字型(如上圖),則是*.whl檔案選擇錯誤,重新下載對應的*.whl檔案重新安裝即可(32位或64位看清楚再下載)。

六、Beautiful Soup

Beautiful Soup 是一個可以從HTML或XML檔案中提取資料的Python庫,它能夠通過你喜歡的轉換器實現慣用的文件導航,查詢,修改文件的方式,Beautiful Soup會幫你節省數小時甚至數天的工作時間,就如它的名字一樣“美麗”~
注意,這個庫是依賴在lxml庫下的,所以安裝這個庫前必須已經完成了上一步的安裝。
安裝過程:在命令列輸入
pip3 install beautifulsoup4
並回車(別漏了4,這是個版本號)。
檢查:
在python互動模式下,輸入命令並回車:
from bs4 import BeautifulSoup
soup=BeautifulSoup(’’,‘lxml’)
在這裡插入圖片描述
這是建立一個beautifulsoup物件並且呼叫方法進行解析。
沒有報錯的話就說明一切順利啦~

七、PyQuery

前端大大們的福音來了,PyQuery 來了,乍聽名字,你一定聯想到了 jQuery,如果你對 jQuery 熟悉,那麼 PyQuery 來解析文件就是不二之選。PyQuery 是 Python 仿照 jQuery 的嚴格實現。語法與 jQuery 幾乎完全相同,所以不用再去費心去記一些奇怪的方法了。不熟悉也沒關係,它依然很友好。
安裝:
命令列模式下輸入並回車:
pip3 install pyquery
在這裡插入圖片描述
如上圖就已經安裝完畢了。
驗證:
進入python互動模式,依次輸入以下命令並回車:
from pyquery import PyQuery as pq
doc=pq(’’)
doc=pq(‘Hello’)
result=doc(‘html’).text()
result
在這裡插入圖片描述
可以看到我們寫入的內容被成功列印了。

八、PyMySQL

PyMySQL 是在 Python3.x 版本中用於連線 MySQL 伺服器的一個庫,Python2中則使用mysqldb。
安裝:
在命令列模式下輸入
pip3 install pymysql
並回車。
在這裡插入圖片描述
很順利吧。驗證過程需要與資料庫進行互動,這部分暫時略過。

九、PyMongo

PyMongo是一個用於MongoDB的Python工具,也是一個被推薦的Python操作MongoDB資料庫的方式。
安裝:
首先檢查MongoDB服務是否已經啟動。
在這裡插入圖片描述
命令列模式下執行命令: pip3 install pymongo
在這裡插入圖片描述
驗證:
python互動模式下依次執行以下命令:
import pymongo
client=pymongo.MongoClient(‘localhost’)
db=client[‘newtestdb’]
db[‘table’].insert({‘name’:‘Bob’})
db[‘table’].find_one({‘name’:‘Bob’})
在這裡插入圖片描述
最後不報錯並返回資訊,說明可以正常使用了。

十、Redis

這也是一個非關係型資料庫,用key-value形式進行儲存,它主要用在分散式爬蟲,維護一個爬取佇列,它的執行效率還是很高的。
安裝:
命令列模式下執行
pip3 install redis
在這裡插入圖片描述
驗證:
python互動模式下依次執行以下命令:
import redis
r=redis.Redis(‘localhost’,6379)
r.set(‘name’,‘Bob’)
r.get(‘name’)

在這裡插入圖片描述
如上圖,寫入和獲取資料一切順利。

十一、Flask

這是一個Web庫。後續做一些代理設定的時候可能會用到這個庫,因為我們要設定一個Web伺服器,用它來設定一些代理的獲取、儲存之類的介面。
安裝:
依然十分簡單,在命令列模式下執行以下命令:
pip3 install flask

十二、Django

這個庫是一個Web伺服器框架,它提供了一個完整的後臺管理,以及一些模板、介面、路由,也可以用它來做一個完整的網站。
安裝:
依然依然十分簡單,在命令列模式下執行以下命令:
pip3 install django
在這裡插入圖片描述
搞定!
驗證:
python互動模式下執行import django
在這裡插入圖片描述
如果沒有報錯就說明成功了。

十三、Jupyter

可以理解為一個強大的記事本,它執行在網頁端,你可以在記事本里寫上些程式碼和除錯…形成一個非常方便的程式碼紀錄。
安裝:
依然依然依然十分簡單,在命令列模式下執行以下命令:
pip3 install jupyter
安裝完後可以看到在Scipts資料夾下多了這麼些相關的東東:
在這裡插入圖片描述
驗證:
命令列模式下直接執行
jupyter notebook
可以發現這時跳出了一個新的網頁:
在這裡插入圖片描述
這個網頁列出了當前執行目錄下的一些檔案資訊。
我們甚至可以直接在網頁上新建一個程式碼檔案:
在這裡插入圖片描述
在這裡插入圖片描述
在編輯框中鍵入程式碼並執行(左邊的小按鈕),可以看到程式碼順利執行了,它使用的直譯器就是其所在目錄的python3直譯器。
那麼我們再試試,按下鍵盤的"B"鍵可以新建一個程式碼塊,我們執行以下的程式:
import requests
response = requests.get(‘http://www.baidu.com’)
print(response.text)
執行後可以看到,打印出了密集…的東西。
在這裡插入圖片描述
厲害吧,在上面還可以進行Markdown等其他模式的程式設計…等等。

結束

好了,至此,所有相關的庫和工具基本上安裝完畢了,開始愉快的爬蟲把!