在著手寫爬蟲之前,要先把其需要的知識線路理清楚。
http是hyper text transfer protocol(超文字傳輸協議)的縮寫。它的發展是全球資訊網協會(world wide web consortium)和internet工作小組ietf(internet engineering task force)合作的結果,(他們)最終發布了一系列的rfc,rfc 1945定義了http/1.0版本。其中最著名的就是rfc 2616。rfc 2616定義了今天普遍使用的乙個版本——http 1.1。
http協議(hypertext transfer protocol,超文字傳輸協議)是用於從www伺服器傳輸超文字到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。
http的請求響應模型
http協議永遠都是客戶端發起請求,伺服器回送響應。
這樣就限制了使用http協議,無法實現在客戶端沒有發起請求的時候,伺服器將訊息推送給客戶端。
http協議是乙個無狀態的協議,同乙個客戶端的這次請求和上次請求是沒有對應關係。
工作流程
一次http操作稱為乙個事務,其工作過程可分為四步:
1)首先客戶機與伺服器需要建立連線。只要單擊某個超級鏈結,http的工作開始。
2)建立連線後,客戶機傳送乙個請求給伺服器,請求方式的格式為:統一資源識別符號(url)、協議版本號,後邊是mime資訊包括請求修飾符、客戶機資訊和可能的內容。
3)伺服器接到請求後,給予相應的響應資訊,其格式為乙個狀態行,包括資訊的協議版本號、乙個成功或錯誤的**,後邊是mime資訊包括伺服器資訊、實體資訊和可能的內容。
4)客戶端接收伺服器所返回的資訊通過瀏覽器顯示在使用者的顯示屏上,然後客戶機與伺服器斷開連線。
如果在以上過程中的某一步出現錯誤,那麼產生錯誤的資訊將返回到客戶端,有顯示屏輸出。對於使用者來說,這些過程是由http自己完成的,使用者只要用滑鼠點選,等待資訊顯示就可以了。
python2系列使用的是urllib2,python3後將其全部集成為urllib;我們所需學習的是幾個常用函式。細節可去官網檢視。
python自帶編譯器 -- idle,十分簡潔;pycharm -- 互動很好的python一款ide;fiddler -- 網頁請求監控工具,我們可以使用它來了解使用者觸發網頁請求後發生的詳細步驟;
'''擷取部分結果如下圖:第乙個示例:簡單的網頁爬蟲
爬取豆瓣首頁
'''import urllib.request
#**url = ""
#請求request = urllib.request.request(url)
#爬取結果
response = urllib.request.urlopen(request)
data = response.read()
#設定解碼方式
data = data.decode('utf-8')
#列印結果
print(data)
#列印爬取網頁的各類資訊
print(type(response))
print(response.geturl())
print(response.info())
print(response.getcode())
Python 3 爬蟲(一) 簡單的爬蟲
url 組成部分 protocol hostname port path protocol 協議 hostname port 主機名,埠名為可選引數 path 主機資源的具體位置網域名稱和伺服器名e.g.www.baidu.com baidu.com 網域名稱 www 伺服器名官方文件 urllib...
python3爬蟲的例項
import requests from bs4 import beautifulsoup response requests.get url print response.text 將網頁的資訊儲存為soup物件進行下一步處理,features是使用的處理引擎,預設的有html.parser,需要...
Python 3 網路爬蟲
python 原來還可以這樣玩 python爬蟲,破解有道翻譯介面引數 破解有道翻譯反爬蟲機制 python3網路爬蟲快速入門實戰解析 article details 78123502 python3網路爬蟲 五 python3安裝scrapy article details 60156205 py...