前言
最近做了一個python自動登錄淘寶爬取數(shù)據(jù)的腳本,關(guān)于這個腳本下篇會做介紹凰浮,在這之間涉及到許多框架根穷,也遇到一些問題姜骡,所以在此主要做一些總結(jié)以備以后查詢导坟。
Python安裝
各平臺安裝Python的方法參考: 安裝python
Python的入門和語法參考:
Python基礎(chǔ)教程
廖雪峰Python教程
Requests庫的安裝和使用
在Python爬蟲開發(fā)中最為常用的庫就是使用Requests實現(xiàn)HTTP請求屿良,因為Requests實現(xiàn)HTTP請求簡單、操作更為人性化惫周。
安裝Requests庫
pip3 install requests
Requests庫主要提供以下七種請求方法
具體使用參考如下:
快速上手Requests
Scrapy庫的安裝和使用
scrapy安裝
pip3 install Scrapy
scrapy的具體使用參考中文官網(wǎng)如下:
scrapy快速入門
selenium庫的安裝和使用
selenium: 是一個用于對web網(wǎng)頁進行自動化測試的工具, 可以通過它提供的一些方法自動操作瀏覽器, 可以完全模擬人的操作
selenium在Python爬蟲中的應(yīng)用:
1 獲取動態(tài)網(wǎng)頁中的數(shù)據(jù), 一些動態(tài)的數(shù)據(jù)我們在獲取的源碼中并沒有顯示的這一類動態(tài)加載數(shù)據(jù)
2 用于模擬登錄, 一些比較復(fù)雜的登錄過程, 如果不通過selenium中的瀏覽器驅(qū)動完成登錄的話, 我們需要分析出來這個登錄發(fā)起的所有請求之間關(guān)聯(lián),包括cookie等關(guān)鍵信息(比如知乎登錄), 而通過selenium驅(qū)動瀏覽器來完成知乎登錄的話, 就不需要考慮一些cookie, 請求和請求之間的關(guān)聯(lián)等信息, 只需要用戶名和密碼即可登錄
selenium的特點
它是通過驅(qū)動瀏覽器來進行頁面登錄, 或者是獲取頁面信息
通過selenium來爬取網(wǎng)址的時候, 效率比較低, 因為瀏覽器的打開, 請求, 渲染頁面都需要一定的時間, 所以盡量少使用selenium進行網(wǎng)站爬取, 除非是動態(tài)網(wǎng)站
selenium提供的一些用于元素定位和查找的API都是純Python語言實現(xiàn)的, 所以效率上看, 沒有l(wèi)xml中的定位API效率高
selenium是開源免費的, 支持主流的瀏覽器, IE, FireFox, Chrome, Opera, Safari等
使用方法:
- 安裝selenium:
pip3 install selenium (第三方庫)
- 安裝Chrome 瀏覽器驅(qū)動, chromedriver
下載完成后:
windows 下尘惧,新建一個命名為chromedriver文件夾,將解壓的chromedriver.exe放進文件夾递递,再配置進path環(huán)境變量
Mac喷橙、Linux下,把下載好的文件放在 /usr/bin 目錄下就可以了登舞。
注意: 瀏覽器驅(qū)動的版本最好要和瀏覽器的版本相匹配, 否則會出現(xiàn)不能啟動瀏覽器的錯誤!
安裝完成后:
1.引入這個庫
from selenium import webdriver
2.創(chuàng)建一個Chrome瀏覽器對象
browser = webdriver.Chrome()
3.通過瀏覽器對象browser向某一個url發(fā)起請求
browser.get(url)
4.關(guān)閉瀏覽器
browser.quite()
mitmproxy庫的安裝和使用
mitmproxy是一個支持HHTP/HTTPS協(xié)議的抓包程序贰逾,類似Fiddler、Charles的功能菠秒,只不過世它通過控制臺的形式操作疙剑。
mitmproxy還有兩個關(guān)聯(lián)組件:
mitmdump
:它是mitmproxy的命令行接口,利用它我們可以對接Python腳本践叠,用Python實現(xiàn)監(jiān)聽后的處理言缤。
mitmweb
: 它是一個Web程序,通過它我們可以清楚觀察mimproxy捕獲的請求禁灼。
mitmproxy的功能:
攔截HTTP和HTTPS請求和響應(yīng)
保存HTTP會話請進行分析
模擬客戶端請求管挟,模擬服務(wù)器返回響應(yīng)
利用反向代理將流量轉(zhuǎn)發(fā)給指定的服務(wù)器
支持Mac和Linux上的透明代理
利用Python對HTTP請求和響應(yīng)進行實時處理
安裝:
完成mitmproxy的安裝,另外還附帶安裝了mitmdump和mimweb這兩個組件
pip3 install mitmproxy
pip3 install mitmproxy
PyQuery安裝和用法
PyQuery庫也是一個非常強大又靈活的網(wǎng)頁解析庫弄捕,如果你有前端開發(fā)經(jīng)驗的僻孝,都應(yīng)該接觸過jQuery,那么PyQuery就是你非常絕佳的選擇,PyQuery 是 Python 仿照 jQuery 的嚴格實現(xiàn)守谓。語法與 jQuery 幾乎完全相同穿铆,所以不用再去費心去記一些奇怪的方法了。
官網(wǎng)地址:http://pyquery.readthedocs.io/en/latest/
jQuery參考文檔: http://jquery.cuishifeng.cn/
安裝:
pip3 install pyquery
XPath的安裝和用法
XPath分飞,全稱XML Path Language悴务,即XML路徑語言,它是一門在XML文檔中查找信息的語言譬猫。它最初是用來搜尋XML文檔的讯檐,但是它同樣適用于HTML文檔的搜索。
XPath的選擇功能十分強大染服,它提供了非常簡潔明了的路徑選擇表達式别洪。另外,它還提供了超過100個內(nèi)建函數(shù)柳刮,用于字符串挖垛、數(shù)值痒钝、時間的匹配以及節(jié)點、序列的處理等痢毒。幾乎所有我們想要定位的節(jié)點送矩,都可以用XPath來選擇。
安裝
pip3 install lxml