1.什么是爬蟲?
請求網站并提取數據的自動化程序
請求:客戶端向服務端發送請求獲得網頁資源,是一段html代碼,包含html標簽和一段信息。
提取:提取出想要的信息,然后將結構化的數據存儲到文本
自動化:寫完程序一直運行著,代替客戶端向服務端發送請求,可以大量的獲得數據
?
爬蟲四部
1.發起請求:通過http庫向發起請求,即發送一個Request,請求可以包含額外的headers等信息,等待服務器響應。
2 .獲取響應內容:如果服務器能正常響應,會獲得一個Response,Response內容便是所要獲取的頁面內容。類型可能有htmlmjson字符串,
二進制數據,如圖片、視頻等類型。
3.解析內容:得到的內容可能是html,可以用正則表達式,網頁解析庫進行解析,可能是json,可以直接轉換為json對象解析,可能是二進制數據,
可以作保存或者進一步的處理。
4.保存數據:保存形式多樣,可以保存文本,也可以保存數據庫,也可以保存特定格式的文件。
?
請求的參數包含在哪一個方面。
get請求直接輸入url回車
post請求需要構建表單,點擊表單提交,登陸賬戶點擊提交就是發送post請求,因為登陸賬戶會有隱私,不能直接放在url里,需要做成表單提交。
?
1. Request主要構成
請求方式:主要有get,post兩種方式,其他的方式還有head,put,delete,options。
request method
請求URL:url全稱資源統一定位符。任何一個軟件,文檔,資源都可以用url來唯一確定。
requeset url
請求頭:包含請求時的頭部信息。如user_Agent,cookies,Host
request headers
請求體:請求時額外攜帶的數據。如表單提交時的表單數據。
提交表單時候的表單數據 format
?
2.Response 主要構成
1.響應狀態:200代表成功,301代表跳轉,404找不到頁面,502服務器錯誤。狀態碼
status code 200 ok 表示請求正常發送,服務器正常響應,網頁的響應狀態
2.響應頭:如內容類型,內容長度,服務器信息,設置cookie等等。
reponse headers
3.響應體:最主要的部分,包含了請求資源的內容,如網頁HTML,圖片二進制數據等。
?
具體實例:
>>> import requests
>>> response = requests.get('http://www.baidu.com')
>>> response.text ?# 可以拿到網頁源碼(響應體)
開始對網頁進行解析
response.headers 查看響應頭
response status_code ?拿到響應狀態
response.content 獲得響應體的二進制
?
第一次爬蟲,興奮,雖然是最簡單的一個圖片


import requestsresponse = requests.get( 'https://img4.duitang.com/uploads/item/201603/01/20160301162401_fc4Rv.jpeg')>>> with open(r'D:\\sylm','wb') as f: ... f.write(response.content) ... f.close()
?