最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python爬蟲請(qǐng)求頭的使用

 更新時(shí)間:2020年12月01日 11:29:55   作者:Klose_10  
這篇文章主要介紹了python爬蟲請(qǐng)求頭的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

爬蟲請(qǐng)求頭

網(wǎng)頁(yè)獲?。?/strong>

通過urlopen來進(jìn)行獲取

requset.urlopen(url,data,timeout)

第一個(gè)參數(shù)url即為URL,第二個(gè)參數(shù)data是訪問URL時(shí)要傳送的數(shù)據(jù),第三個(gè)timeout是設(shè)置超時(shí)時(shí)間。
第二三個(gè)參數(shù)是可以不傳送的,data默認(rèn)為空None,timeout默認(rèn)為 socket._GLOBAL_DEFAULT_TIMEOUT
第一個(gè)參數(shù)URL是必須要加入的,執(zhí)行urlopen方法之后,返回一個(gè)response對(duì)象,返回信息便保存在這里面

from urllib.request import urlopen

url = "https://www.baidu.com/"
respons = urlopen(url)#最簡(jiǎn)單的爬取情況這樣爬取大部分網(wǎng)頁(yè)無法爬取成功

response對(duì)象:

response.read()
read()方法就是讀取文件里的全部?jī)?nèi)容,返回bytes類型

print(type(respons.read()))#結(jié)果為bytes類型所以需要進(jìn)行轉(zhuǎn)碼
print(type(respons.read().decode()))#通過decode轉(zhuǎn)碼結(jié)果為str

response.getcode()
返回 HTTP的響應(yīng)碼,成功返回200,4服務(wù)器頁(yè)面出錯(cuò),5服務(wù)器問題

response.geturl()
返回 返回實(shí)際數(shù)據(jù)的實(shí)際URL,防止重定向問題

response.info()
返回 服務(wù)器響應(yīng)的HTTP報(bào)頭

Request對(duì)象

Request對(duì)象,由于urlopen參數(shù)可以傳入一個(gè)request請(qǐng)求(可以理解成為再加一步封裝的功能)因?yàn)樵跇?gòu)建請(qǐng)求時(shí)還需要加入好多內(nèi)容,通過構(gòu)建一個(gè)request,服務(wù)器響應(yīng)請(qǐng)求得到應(yīng)答,這樣顯得邏輯上清晰明確

from urllib.request import urlopen,Request
from fake_useragent import UserAgent#這個(gè)包可以隨機(jī)生成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請(qǐng)求

瀏覽器通過GET方法發(fā)出請(qǐng)求
爬蟲主要通過get再url中加入請(qǐng)求的參數(shù),由于中文的需要轉(zhuǎn)碼通過
Urllib.parse.urlencode() 針對(duì)多個(gè)參數(shù)進(jìn)行轉(zhuǎn)碼操作輸入格式為字典類型
Urllib.parse.quote() 針對(duì)單個(gè)字符串進(jìn)行轉(zhuǎn)碼操作
Str格式.format( ) 用于拼接字符串

post請(qǐng)求

一般在需要登錄的地方用的比較多
需要在request請(qǐng)求中加如一個(gè)data用來傳入?yún)?shù)
參數(shù)的形式要以字典格式通過urllib.parse.urlencode()進(jìn)行轉(zhuǎn)換成字符串形式
再通過encode()函數(shù)對(duì)字符串進(jìn)行轉(zhuǎn)碼(默認(rèn)值就可以)

發(fā)送請(qǐng)求/響應(yīng)header頭的含義

名稱 含義
Accept 告訴服務(wù)器,客戶端支持的數(shù)據(jù)類型
Accept-Charset 告訴服務(wù)器,客戶端采用的編碼
Accept-Encoding 告訴服務(wù)器,客戶機(jī)支持的數(shù)據(jù)壓縮格式
Accept-Language 告訴服務(wù)器,客戶機(jī)的語言環(huán)境
Host 客戶機(jī)通過這個(gè)頭告訴服務(wù)器,想訪問的主機(jī)名
If-Modified-Since 客戶機(jī)通過這個(gè)頭告訴服務(wù)器,資源的緩存時(shí)間
Referer 客戶機(jī)通過這個(gè)頭告訴服務(wù)器,它是從哪個(gè)資源來訪問服務(wù)器的。(一般用于防盜鏈)
User-Agent 客戶機(jī)通過這個(gè)頭告訴服務(wù)器,客戶機(jī)的軟件環(huán)境
Cookie 客戶機(jī)通過這個(gè)頭告訴服務(wù)器,可以向服務(wù)器帶數(shù)據(jù)
Refresh 服務(wù)器通過這個(gè)頭,告訴瀏覽器隔多長(zhǎng)時(shí)間刷新一次
Content-Type 服務(wù)器通過這個(gè)頭,回送數(shù)據(jù)的類型
Content-Language 服務(wù)器通過這個(gè)頭,告訴服務(wù)器的語言環(huán)境
Server 服務(wù)器通過這個(gè)頭,告訴瀏覽器服務(wù)器的類型
Content-Encoding 服務(wù)器通過這個(gè)頭,告訴瀏覽器數(shù)據(jù)采用的壓縮格式
Content-Length 服務(wù)器通過這個(gè)頭,告訴瀏覽器回送數(shù)據(jù)的長(zhǎng)度

Ajax請(qǐng)求
用于提取動(dòng)態(tài)的頁(yè)面 網(wǎng)頁(yè)數(shù)據(jù)根據(jù)拖動(dòng)進(jìn)行顯示
通過瀏覽器工具箱,查找包的信息,找到url的規(guī)律進(jìn)行爬取
如果無法知道要循環(huán)多少次則規(guī)定一個(gè)死循環(huán),爬取頁(yè)面為空時(shí)停止循環(huán)
也可以通過改變url一次性輸出更多的網(wǎng)頁(yè)信息(只要服務(wù)器允許)

https請(qǐng)求
因?yàn)樵谟行g覽器中存在很多證書所以在大部分網(wǎng)頁(yè)爬取的時(shí)候不用改變證書或者添加證書但有些自己寫證書的網(wǎng)站需要進(jìn)行這一步操作
https請(qǐng)求=在http上加ssl,http請(qǐng)求是明文直接可以看見,為了安全要加上ssl
可以選擇忽略證書進(jìn)行爬取 context = ssl._create_unverified_context()

到此這篇關(guān)于python爬蟲請(qǐng)求頭的使用的文章就介紹到這了,更多相關(guān)python爬蟲請(qǐng)求頭內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 總結(jié)Python編程中函數(shù)的使用要點(diǎn)

    總結(jié)Python編程中函數(shù)的使用要點(diǎn)

    這篇文章主要介紹了Python編程中函數(shù)的使用要點(diǎn)總結(jié),文中也講到了人民群眾喜聞樂見的lambda表達(dá)式的用法,需要的朋友可以參考下
    2016-03-03
  • Python離線安裝openpyxl模塊的步驟

    Python離線安裝openpyxl模塊的步驟

    這篇文章主要介紹了Python離線安裝openpyxl模塊的步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Python原始字符串(raw strings)用法實(shí)例

    Python原始字符串(raw strings)用法實(shí)例

    這篇文章主要介紹了Python原始字符串(raw strings)用法實(shí)例,在使用Python進(jìn)行字符串處理的過程中非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • python和mysql交互操作實(shí)例詳解【基于pymysql庫(kù)】

    python和mysql交互操作實(shí)例詳解【基于pymysql庫(kù)】

    這篇文章主要介紹了python和mysql交互操作,結(jié)合實(shí)例形式詳細(xì)分析了Python基于pymysql庫(kù)實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)的連接、增刪改查等各種常見操作技巧,需要的朋友可以參考下
    2019-06-06
  • Python paramiko使用方法代碼匯總

    Python paramiko使用方法代碼匯總

    這篇文章主要介紹了Python paramiko使用方法代碼匯總,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 使用python中的in ,not in來檢查元素是不是在列表中的方法

    使用python中的in ,not in來檢查元素是不是在列表中的方法

    今天小編就為大家分享一篇使用python中的in ,not in來檢查元素是不是在列表中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python用zip函數(shù)同時(shí)遍歷多個(gè)迭代器示例詳解

    Python用zip函數(shù)同時(shí)遍歷多個(gè)迭代器示例詳解

    這篇文章主要給大家進(jìn)行介紹了Python如何用zip函數(shù)同時(shí)遍歷多個(gè)迭代器,文中給出了示例以及原理和注意事項(xiàng),相信會(huì)對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • 一步步教你用python連接oracle數(shù)據(jù)庫(kù)

    一步步教你用python連接oracle數(shù)據(jù)庫(kù)

    oracle作為最強(qiáng)大的數(shù)據(jù)庫(kù),Python也提供了足夠的支持。不過與其他數(shù)據(jù)庫(kù)略有不同,下面這篇文章主要給大家介紹了關(guān)于如何使用python連接oracle數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Python安裝jieba庫(kù)詳細(xì)教程

    Python安裝jieba庫(kù)詳細(xì)教程

    jieba庫(kù)是一款優(yōu)秀的 Python 第三方中文分詞庫(kù),jieba 支持三種分詞模式:精確模式、全模式和搜索引擎模式,這篇文章主要介紹了Python安裝jieba庫(kù)教程,需要的朋友可以參考下
    2023-03-03
  • 舉例講解Python中的Null模式與橋接模式編程

    舉例講解Python中的Null模式與橋接模式編程

    這篇文章主要介紹了Python中的Null模式與橋接模式編程,Null模式與橋接模式都屬于Python的設(shè)計(jì)模式編程,需要的朋友可以參考下
    2016-02-02

最新評(píng)論

徐闻县| 亳州市| 观塘区| 杂多县| 西宁市| 敦煌市| 永年县| 泰兴市| 宁陵县| 海门市| 东山县| 花莲县| 桃园县| 宣恩县| 绥化市| 台南市| 西平县| 陵川县| 揭东县| 仪征市| 崇文区| 安远县| 彭阳县| 巨野县| 酒泉市| 宝应县| 南城县| 南郑县| 常熟市| 武冈市| 惠东县| 阿克苏市| 始兴县| 丘北县| 休宁县| 瑞丽市| 武义县| 平邑县| 寿光市| 崇州市| 海丰县|