urllib和urllib2
urllib和urllib2都是接受URL請求的相關模塊,但是提供了不同的功能;
urllib和urllib2 這兩個模塊並不可以互相替補;
urllib2 可以接受一個Request類的實例來設置URL請求的header,urllib僅可以接受URL。這就意味着你不可以僞裝你的User Agent字符串等
urllib提供的urlencode方法用來GET查詢字符串的產生,而urllib2沒有。這就是爲何urllib和urllib2一起使用的的原因。
urllib2擁有很多urllib所沒有的特性:
1、urllib不支持緩存,urllib2支持
2、urllib不支持最後修改時間檢查,urllib2支持
3,、urllib不支持ETag,urllib2支持
4、urllib不支持壓縮,urllib2支持
5、urllib將所有的重定向都當所臨時重定向,urllib2支持區分臨時重定向和永久重定向。(重定向:通過各種方法將各種網絡請求重新定位到其他位置)
反正urllib就是一個基本的http庫,而urllib2對http協議的支持更加完善
BeautifulSoup的簡介
Beautiful Soup 是用Python寫的一個HTML/XML的解析器,它可以很好的處理不規範標記並生成剖析樹(parse tree)。 它提供簡單又常用的導航(navigating),搜索以及修改剖析樹的操作。它可以大大節省你的編程時間
簡單來說,BeautifulSoup是python的一個庫,最主要的功能是從網頁抓取數據,官方的解釋如下:
BeautifulSoup提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。它是一個工具箱、通過解析文檔爲用戶提供需要抓取的數據,因爲簡單、所以不需要多少代碼就可以寫出一個完整的應用程序。
BeautifuSoup自動輸入文檔轉換爲Unicode編碼,輸入文檔轉換爲utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時BeautifulSoup就不能自動識別編碼方式了。然後,你僅僅需要說明一下原始編碼方式就可以了。
BeautifulSoup已成爲和lxml、html6lib一樣出色的python解釋器、爲用戶靈活地提供不同的解析策略或強勁的速度
python的正則表達式re模塊
正則表達式是一個小巧的,高度專業化的編程語言,它內嵌於python的開發語言中,可通過re模塊使用,
正則表達式使用單個字符來描述、匹配一系列符合某個句法規則的字符串。
Requests模塊
Requests使用的是urllib3,因此繼承了它的所有的特性。Requests支持HTTP連接保持和連接池。支持cookie保護會話,支持文件上傳,支持自動確定響應內容的編碼。