前言
最近做了一個(gè)python自動(dòng)登錄淘寶爬取數(shù)據(jù)的腳本,關(guān)于這個(gè)腳本下篇會(huì)做介紹,在這之間涉及到許多框架,也遇到一些問(wèn)題,所以在此主要做一些總結(jié)以備以后查詢(xún)。
Python安裝
各平臺(tái)安裝Python的方法參考: 安裝python
Python的入門(mén)和語(yǔ)法參考:
Python基礎(chǔ)教程
廖雪峰Python教程
Requests庫(kù)的安裝和使用
在Python爬蟲(chóng)開(kāi)發(fā)中最為常用的庫(kù)就是使用Requests實(shí)現(xiàn)HTTP請(qǐng)求,因?yàn)镽equests實(shí)現(xiàn)HTTP請(qǐng)求簡(jiǎn)單、操作更為人性化。
安裝Requests庫(kù)
pip3 install requests
Requests庫(kù)主要提供以下七種請(qǐng)求方法

具體使用參考如下:
快速上手Requests
Scrapy庫(kù)的安裝和使用
scrapy安裝
pip3 install Scrapy
scrapy的具體使用參考中文官網(wǎng)如下:
scrapy快速入門(mén)
selenium庫(kù)的安裝和使用
selenium: 是一個(gè)用于對(duì)web網(wǎng)頁(yè)進(jìn)行自動(dòng)化測(cè)試的工具, 可以通過(guò)它提供的一些方法自動(dòng)操作瀏覽器, 可以完全模擬人的操作
selenium在Python爬蟲(chóng)中的應(yīng)用:
1 獲取動(dòng)態(tài)網(wǎng)頁(yè)中的數(shù)據(jù), 一些動(dòng)態(tài)的數(shù)據(jù)我們?cè)讷@取的源碼中并沒(méi)有顯示的這一類(lèi)動(dòng)態(tài)加載數(shù)據(jù)
2 用于模擬登錄, 一些比較復(fù)雜的登錄過(guò)程, 如果不通過(guò)selenium中的瀏覽器驅(qū)動(dòng)完成登錄的話, 我們需要分析出來(lái)這個(gè)登錄發(fā)起的所有請(qǐng)求之間關(guān)聯(lián),包括cookie等關(guān)鍵信息(比如知乎登錄), 而通過(guò)selenium驅(qū)動(dòng)瀏覽器來(lái)完成知乎登錄的話, 就不需要考慮一些cookie, 請(qǐng)求和請(qǐng)求之間的關(guān)聯(lián)等信息, 只需要用戶(hù)名和密碼即可登錄
selenium的特點(diǎn)
它是通過(guò)驅(qū)動(dòng)瀏覽器來(lái)進(jìn)行頁(yè)面登錄, 或者是獲取頁(yè)面信息
通過(guò)selenium來(lái)爬取網(wǎng)址的時(shí)候, 效率比較低, 因?yàn)闉g覽器的打開(kāi), 請(qǐng)求, 渲染頁(yè)面都需要一定的時(shí)間, 所以盡量少使用selenium進(jìn)行網(wǎng)站爬取, 除非是動(dòng)態(tài)網(wǎng)站
selenium提供的一些用于元素定位和查找的API都是純Python語(yǔ)言實(shí)現(xiàn)的, 所以效率上看, 沒(méi)有l(wèi)xml中的定位API效率高
selenium是開(kāi)源免費(fèi)的, 支持主流的瀏覽器, IE, FireFox, Chrome, Opera, Safari等
使用方法:
- 安裝selenium:
pip3 install selenium (第三方庫(kù))
- 安裝Chrome 瀏覽器驅(qū)動(dòng), chromedriver
下載完成后:
windows 下,新建一個(gè)命名為chromedriver文件夾,將解壓的chromedriver.exe放進(jìn)文件夾,再配置進(jìn)path環(huán)境變量
Mac、Linux下,把下載好的文件放在 /usr/bin 目錄下就可以了。
注意: 瀏覽器驅(qū)動(dòng)的版本最好要和瀏覽器的版本相匹配, 否則會(huì)出現(xiàn)不能啟動(dòng)瀏覽器的錯(cuò)誤!
安裝完成后:
1.引入這個(gè)庫(kù)
from selenium import webdriver
2.創(chuàng)建一個(gè)Chrome瀏覽器對(duì)象
browser = webdriver.Chrome()
3.通過(guò)瀏覽器對(duì)象browser向某一個(gè)url發(fā)起請(qǐng)求
browser.get(url)
4.關(guān)閉瀏覽器
browser.quite()
mitmproxy庫(kù)的安裝和使用
mitmproxy是一個(gè)支持HHTP/HTTPS協(xié)議的抓包程序,類(lèi)似Fiddler、Charles的功能,只不過(guò)世它通過(guò)控制臺(tái)的形式操作。
mitmproxy還有兩個(gè)關(guān)聯(lián)組件:
mitmdump:它是mitmproxy的命令行接口,利用它我們可以對(duì)接Python腳本,用Python實(shí)現(xiàn)監(jiān)聽(tīng)后的處理。
mitmweb: 它是一個(gè)Web程序,通過(guò)它我們可以清楚觀察mimproxy捕獲的請(qǐng)求。
mitmproxy的功能:
攔截HTTP和HTTPS請(qǐng)求和響應(yīng)
保存HTTP會(huì)話請(qǐng)進(jìn)行分析
模擬客戶(hù)端請(qǐng)求,模擬服務(wù)器返回響應(yīng)
利用反向代理將流量轉(zhuǎn)發(fā)給指定的服務(wù)器
支持Mac和Linux上的透明代理
利用Python對(duì)HTTP請(qǐng)求和響應(yīng)進(jìn)行實(shí)時(shí)處理
安裝:
完成mitmproxy的安裝,另外還附帶安裝了mitmdump和mimweb這兩個(gè)組件
pip3 install mitmproxy
pip3 install mitmproxy
PyQuery安裝和用法
PyQuery庫(kù)也是一個(gè)非常強(qiáng)大又靈活的網(wǎng)頁(yè)解析庫(kù),如果你有前端開(kāi)發(fā)經(jīng)驗(yàn)的,都應(yīng)該接觸過(guò)jQuery,那么PyQuery就是你非常絕佳的選擇,PyQuery 是 Python 仿照 jQuery 的嚴(yán)格實(shí)現(xiàn)。語(yǔ)法與 jQuery 幾乎完全相同,所以不用再去費(fèi)心去記一些奇怪的方法了。
官網(wǎng)地址:http://pyquery.readthedocs.io/en/latest/
jQuery參考文檔: http://jquery.cuishifeng.cn/
安裝:
pip3 install pyquery
XPath的安裝和用法
XPath,全稱(chēng)XML Path Language,即XML路徑語(yǔ)言,它是一門(mén)在XML文檔中查找信息的語(yǔ)言。它最初是用來(lái)搜尋XML文檔的,但是它同樣適用于HTML文檔的搜索。
XPath的選擇功能十分強(qiáng)大,它提供了非常簡(jiǎn)潔明了的路徑選擇表達(dá)式。另外,它還提供了超過(guò)100個(gè)內(nèi)建函數(shù),用于字符串、數(shù)值、時(shí)間的匹配以及節(jié)點(diǎn)、序列的處理等。幾乎所有我們想要定位的節(jié)點(diǎn),都可以用XPath來(lái)選擇。
安裝
pip3 install lxml