PYTHON爬蟲(一)
- python爬蟲
- 對pyhton爬蟲理解
- 前端爬取requests庫
- 1.獲取response對象
- 2.網絡狀態碼
- 3.編碼方式
- 4.二進制流輸出和編碼輸出
- 5.數據的保存
python爬蟲
對pyhton爬蟲理解
網絡爬蟲:爬取網頁前端的數據並且提取其中需要的保存起來
前端爬取requests庫
1.獲取response對象
import requests #導入requests
res = requests.get(url) #獲取url的前端數據,url一定要全網址不能省略http://或者https://
2.網絡狀態碼
res.status_code #200表示成功
是用以表示網頁服務器超文本傳輸協議響應狀態的3位數字代碼。
狀態碼 | 含義 | 1XX系列指定客戶端應相應的某些動作,代表請求已被接受,需要繼續處理。由於 HTTP/1.0 協議中沒有定義任何 1xx 狀態碼,所以除非在某些試驗條件下,服務器禁止向此類客戶端發送 1xx 響應。2XX系列代表請求已成功被服務器接收、理解、並接受。這系列中最常見的有200、201狀態碼。3XX系列代表需要客戶端采取進一步的操作才能完成請求,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的 Location 域中指明。這系列中最常見的有301、302狀態碼。4XX系列表示請求錯誤。代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理。常見有:401、404狀態碼。5XX系列代表了服務器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。常見有500、503狀態碼。
3.編碼方式
res.encoding #編碼方式
res.apparent_encoding #匹配出來的編碼方式,一般很准
編碼方式這塊一般中文編碼有UTF-8 UTF-16 GBK GB2312 GB18030(不分大小寫)
常用的是UTF-8 GB2312
python和linux默認是UTF-8 windows默認GB2312
4.二進制流輸出和編碼輸出
res.content #二進制流
res.text #編碼輸出
編碼輸出的數據格式是str一般用來保存一些文本,而二進制流輸出是用來保存視頻、圖片等
5.數據的保存
f = open('myFirst.txt', 'w') #構建文件對象FileName文件名,Mode是模式
f.write(res.text) #DocumentContent文件內容
f.close() #關閉文件
以上就是爬蟲的第一步了,僅僅爬取前端未渲染的頁面,後續我們需要在這裡提取我們要的,請看我的下一章爬蟲
Mode | 描述 | r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。rb以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。r+打開一個文件用於讀寫。文件指針將會放在文件的開頭。rb+以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。w打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。wb以二進制格式打開一個文件只用於寫入。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。w+打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。wb+以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。a打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。ab以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入a+打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。ab+以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。