python爬蟲請求頭的使用
爬蟲請求頭
網(wǎng)頁獲?。?/strong>
通過urlopen來進行獲取
requset.urlopen(url,data,timeout)
第一個參數(shù)url即為URL,第二個參數(shù)data是訪問URL時要傳送的數(shù)據(jù),第三個timeout是設置超時時間。
第二三個參數(shù)是可以不傳送的,data默認為空None,timeout默認為 socket._GLOBAL_DEFAULT_TIMEOUT
第一個參數(shù)URL是必須要加入的,執(zhí)行urlopen方法之后,返回一個response對象,返回信息便保存在這里面
from urllib.request import urlopen url = "https://www.baidu.com/" respons = urlopen(url)#最簡單的爬取情況這樣爬取大部分網(wǎng)頁無法爬取成功
response對象:
response.read()
read()方法就是讀取文件里的全部內(nèi)容,返回bytes類型
print(type(respons.read()))#結果為bytes類型所以需要進行轉碼 print(type(respons.read().decode()))#通過decode轉碼結果為str
response.getcode()
返回 HTTP的響應碼,成功返回200,4服務器頁面出錯,5服務器問題
response.geturl()
返回 返回實際數(shù)據(jù)的實際URL,防止重定向問題
response.info()
返回 服務器響應的HTTP報頭
Request對象
Request對象,由于urlopen參數(shù)可以傳入一個request請求(可以理解成為再加一步封裝的功能)因為在構建請求時還需要加入好多內(nèi)容,通過構建一個request,服務器響應請求得到應答,這樣顯得邏輯上清晰明確
from urllib.request import urlopen,Request from fake_useragent import UserAgent#這個包可以隨機生成User-Agent url = "https://www.baidu.com/" headers = {"User-Agent":UserAgent().firefox}#生成火狐的 request = Request(url,headers=headers) response = urlopen(request) a=response.read().decode()
Get請求
瀏覽器通過GET方法發(fā)出請求
爬蟲主要通過get再url中加入請求的參數(shù),由于中文的需要轉碼通過
Urllib.parse.urlencode() 針對多個參數(shù)進行轉碼操作輸入格式為字典類型
Urllib.parse.quote() 針對單個字符串進行轉碼操作
Str格式.format( ) 用于拼接字符串
post請求
一般在需要登錄的地方用的比較多
需要在request請求中加如一個data用來傳入?yún)?shù)
參數(shù)的形式要以字典格式通過urllib.parse.urlencode()進行轉換成字符串形式
再通過encode()函數(shù)對字符串進行轉碼(默認值就可以)
發(fā)送請求/響應header頭的含義
名稱 | 含義 |
---|---|
Accept | 告訴服務器,客戶端支持的數(shù)據(jù)類型 |
Accept-Charset | 告訴服務器,客戶端采用的編碼 |
Accept-Encoding | 告訴服務器,客戶機支持的數(shù)據(jù)壓縮格式 |
Accept-Language | 告訴服務器,客戶機的語言環(huán)境 |
Host | 客戶機通過這個頭告訴服務器,想訪問的主機名 |
If-Modified-Since | 客戶機通過這個頭告訴服務器,資源的緩存時間 |
Referer | 客戶機通過這個頭告訴服務器,它是從哪個資源來訪問服務器的。(一般用于防盜鏈) |
User-Agent | 客戶機通過這個頭告訴服務器,客戶機的軟件環(huán)境 |
Cookie | 客戶機通過這個頭告訴服務器,可以向服務器帶數(shù)據(jù) |
Refresh | 服務器通過這個頭,告訴瀏覽器隔多長時間刷新一次 |
Content-Type | 服務器通過這個頭,回送數(shù)據(jù)的類型 |
Content-Language | 服務器通過這個頭,告訴服務器的語言環(huán)境 |
Server | 服務器通過這個頭,告訴瀏覽器服務器的類型 |
Content-Encoding | 服務器通過這個頭,告訴瀏覽器數(shù)據(jù)采用的壓縮格式 |
Content-Length | 服務器通過這個頭,告訴瀏覽器回送數(shù)據(jù)的長度 |
Ajax請求
用于提取動態(tài)的頁面 網(wǎng)頁數(shù)據(jù)根據(jù)拖動進行顯示
通過瀏覽器工具箱,查找包的信息,找到url的規(guī)律進行爬取
如果無法知道要循環(huán)多少次則規(guī)定一個死循環(huán),爬取頁面為空時停止循環(huán)
也可以通過改變url一次性輸出更多的網(wǎng)頁信息(只要服務器允許)
https請求
因為在有些瀏覽器中存在很多證書所以在大部分網(wǎng)頁爬取的時候不用改變證書或者添加證書但有些自己寫證書的網(wǎng)站需要進行這一步操作
https請求=在http上加ssl,http請求是明文直接可以看見,為了安全要加上ssl
可以選擇忽略證書進行爬取 context = ssl._create_unverified_context()
到此這篇關于python爬蟲請求頭的使用的文章就介紹到這了,更多相關python爬蟲請求頭內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python連接kafka加載數(shù)據(jù)的項目實踐
本文主要介紹了python連接kafka加載數(shù)據(jù)的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05Python深度學習實戰(zhàn)PyQt5菜單和工具欄功能作用
本文詳細解讀通過 QtDesigner 創(chuàng)建主窗口、菜單欄和工具欄,并以菜單項 “退出” 為例關聯(lián)系統(tǒng)定義的動作處理方法。有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解
Python3對函數(shù)參數(shù)的排序規(guī)則更加通用化了,即Python3 keyword-only參數(shù),該參數(shù)即為必須只按照關鍵字傳遞而不會有一個位置參數(shù)來填充的參數(shù)。這篇文章主要介紹了Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù),需要的朋友可以參考下2019-06-06