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

python 爬蟲(chóng)請(qǐng)求模塊requests詳解

 更新時(shí)間:2020年12月04日 10:37:42   作者:碼農(nóng)一號(hào)已就位  
這篇文章主要介紹了python 爬蟲(chóng)請(qǐng)求模塊requests詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

requests

相比urllib,第三方庫(kù)requests更加簡(jiǎn)單人性化,是爬蟲(chóng)工作中常用的庫(kù)

requests安裝

初級(jí)爬蟲(chóng)的開(kāi)始主要是使用requests模塊
安裝requests模塊:
Windows系統(tǒng):
cmd中:

pip install requests

mac系統(tǒng)中:
終端中:

pip3 install requests

requests庫(kù)的基本使用

import requests

url = 'https://www.csdn.net/'
reponse = requests.get(url)
#返回unicode格式的數(shù)據(jù)(str) 
print(reponse.text)

在這里插入圖片描述

響應(yīng)對(duì)象response的⽅法

response.text 返回unicode格式的數(shù)據(jù)(str)
response.content 返回字節(jié)流數(shù)據(jù)(⼆進(jìn)制)
response.content.decode(‘utf-8') ⼿動(dòng)進(jìn)⾏解碼
response.url 返回url
response.encode() = ‘編碼'

狀態(tài)碼

response.status_code: 檢查響應(yīng)的狀態(tài)碼

在這里插入圖片描述

例如:
200 : 請(qǐng)求成功
301 : 永久重定向
302 : 臨時(shí)重定向
403 : 服務(wù)器拒絕請(qǐng)求
404 : 請(qǐng)求失敗(服務(wù)器⽆法根據(jù)客戶(hù)端的請(qǐng)求找到資源(⽹⻚))
500 : 服務(wù)器內(nèi)部請(qǐng)求

# 導(dǎo)入requests
import requests
# 調(diào)用requests中的get()方法來(lái)向服務(wù)器發(fā)送請(qǐng)求,括號(hào)內(nèi)的url參數(shù)就是我們
# 需要訪(fǎng)問(wèn)的網(wǎng)址,然后將獲取到的響應(yīng)通過(guò)變量response保存起來(lái)
url = 'https://www.csdn.net/' # csdn官網(wǎng)鏈接鏈接
response = requests.get(url)
print(response.status_code) # response.status_code: 檢查響應(yīng)的狀態(tài)碼

200

請(qǐng)求⽅式

requests的幾種請(qǐng)求方式:

p = requests.get(url)
p = requests.post(url)
p = requests.put(url,data={'key':'value'})
p = requests.delete(url)
p = requests.head(url)
p = requests.options(url)

GET請(qǐng)求

HTTP默認(rèn)的請(qǐng)求方法就是GET
* 沒(méi)有請(qǐng)求體
* 數(shù)據(jù)必須在1K之內(nèi)!
* GET請(qǐng)求數(shù)據(jù)會(huì)暴露在瀏覽器的地址欄中

GET請(qǐng)求常用的操作:
1. 在瀏覽器的地址欄中直接給出URL,那么就一定是GET請(qǐng)求
2. 點(diǎn)擊頁(yè)面上的超鏈接也一定是GET請(qǐng)求
3. 提交表單時(shí),表單默認(rèn)使用GET請(qǐng)求,但可以設(shè)置為POST

POST請(qǐng)求

(1). 數(shù)據(jù)不會(huì)出現(xiàn)在地址欄中
(2). 數(shù)據(jù)的大小沒(méi)有上限
(3). 有請(qǐng)求體
(4). 請(qǐng)求體中如果存在中文,會(huì)使用URL編碼!

requests.post()用法與requests.get()完全一致,特殊的是requests.post()有一個(gè)data參數(shù),用來(lái)存放請(qǐng)求體數(shù)據(jù)

請(qǐng)求頭

當(dāng)我們打開(kāi)一個(gè)網(wǎng)頁(yè)時(shí),瀏覽器要向網(wǎng)站服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求頭,然后網(wǎng)站服務(wù)器根據(jù)HTTP請(qǐng)求頭的內(nèi)容生成當(dāng)此請(qǐng)求的內(nèi)容發(fā)送給服務(wù)器。
我們可以手動(dòng)設(shè)定請(qǐng)求頭的內(nèi)容:

import requests

header = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}

url = 'https://www.csdn.net/'
reponse = requests.get(url,headers=header)
#打印文本形式
print(reponse.text)

requests設(shè)置代理

使⽤requests添加代理只需要在請(qǐng)求⽅法中(get/post)傳遞proxies參數(shù)就可以了

cookie

cookie :通過(guò)在客戶(hù)端記錄的信息確定⽤戶(hù)身份

HTTP是⼀種⽆連接協(xié)議,客戶(hù)端和服務(wù)器交互僅僅限于 請(qǐng)求/響應(yīng)過(guò)程,結(jié)束后 斷開(kāi),下⼀次請(qǐng)求時(shí),服務(wù)器會(huì)認(rèn)為是⼀個(gè)新的客戶(hù)端,為了維護(hù)他們之間的連接, 讓服務(wù)器知道這是前⼀個(gè)⽤戶(hù)發(fā)起的請(qǐng)求,必須在⼀個(gè)地⽅保存客戶(hù)端信息。

requests操作Cookies很簡(jiǎn)單,只需要指定cookies參數(shù)即可

import requests
#這段cookies是從CSDN官網(wǎng)控制臺(tái)中復(fù)制的
header = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
      'cookie': 'uuid_tt_dd=10_30835064740-1583844255125-466273; dc_session_id=10_1583844255125.696601; __gads=ID=23811027bd34da29:T=1583844256:S=ALNI_MY6f7VlmNJKxrkHd2WKUIBQ34Bbnw; UserName=xdc1812547560; UserInfo=708aa833b2064ba9bb8ab0be63866b58; UserToken=708aa833b2064ba9bb8ab0be63866b58; UserNick=xdc1812547560; AU=F85; UN=xdc1812547560; BT=1590317415705; p_uid=U000000; Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac=6525*1*10_30835064740-1583844255125-466273!5744*1*xdc1812547560; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22xdc1812547560%22%2C%22scope%22%3A1%7D%7D; log_Id_click=1; Hm_lvt_feacd7cde2017fd3b499802fc6a6dbb4=1595575203; Hm_up_feacd7cde2017fd3b499802fc6a6dbb4=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22xdc1812547560%22%2C%22scope%22%3A1%7D%7D; Hm_ct_feacd7cde2017fd3b499802fc6a6dbb4=5744*1*xdc1812547560!6525*1*10_30835064740-1583844255125-466273; Hm_up_facf15707d34a73694bf5c0d571a4a72=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22xdc1812547560%22%2C%22scope%22%3A1%7D%7D; Hm_ct_facf15707d34a73694bf5c0d571a4a72=5744*1*xdc1812547560!6525*1*10_30835064740-1583844255125-466273; announcement=%257B%2522isLogin%2522%253Atrue%252C%2522announcementUrl%2522%253A%2522https%253A%252F%252Flive.csdn.net%252Froom%252Fyzkskaka%252Fats4dBdZ%253Futm_source%253D908346557%2522%252C%2522announcementCount%2522%253A0%257D; Hm_lvt_facf15707d34a73694bf5c0d571a4a72=1596946584,1597134917,1597155835,1597206739; searchHistoryArray=%255B%2522%25E8%258F%259C%25E9%25B8%259FIT%25E5%25A5%25B3%2522%252C%2522%25E5%25AE%25A2%25E6%259C%258D%2522%255D; log_Id_pv=7; log_Id_view=8; dc_sid=c0efd34d6da090a1fccd033091e0dc53; TY_SESSION_ID=7d77f76f-a4b1-43ef-9bb5-0aebee8ee475; c_ref=https%3A//www.baidu.com/link; c_first_ref=www.baidu.com; c_first_page=https%3A//www.csdn.net/; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1597245305,1597254589,1597290418,1597378513; c_segment=1; dc_tos=qf1jz2; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1597387359'}

url = 'https://www.csdn.net/'
reponse = requests.get(url,headers=header)
#打印文本形式
print(reponse.text)

session

session :通過(guò)在服務(wù)端記錄的信息確定⽤戶(hù)身份
這⾥這個(gè)session就是⼀個(gè)指 的是會(huì)話(huà)
會(huì)話(huà)對(duì)象是一種高級(jí)的用法,可以跨請(qǐng)求保持某些參數(shù),比如在同一個(gè)Session實(shí)例之間保存Cookie,像瀏覽器一樣,我們并不需要每次請(qǐng)求Cookie,Session會(huì)自動(dòng)在后續(xù)的請(qǐng)求中添加獲取的Cookie,這種處理方式在同一站點(diǎn)連續(xù)請(qǐng)求中特別方便

處理不信任的SSL證書(shū)

什么是SSL證書(shū)?
SSL證書(shū)是數(shù)字證書(shū)的⼀種,類(lèi)似于駕駛證、護(hù)照和營(yíng)業(yè)執(zhí)照的電⼦副本。

因?yàn)榕渲迷诜?wù)器上,也稱(chēng)為SSL服務(wù)器證書(shū)。SSL 證書(shū)就是遵守 SSL協(xié) 議,由受信任的數(shù)字證書(shū)頒發(fā)機(jī)構(gòu)CA,在驗(yàn)證服務(wù)器身份后頒發(fā),具有服務(wù) 器身份驗(yàn)證和數(shù)據(jù)傳輸加密功能
我們來(lái)爬一個(gè)證書(shū)不太合格的網(wǎng)站

在這里插入圖片描述

 import requests
url = 'https://inv-veri.chinatax.gov.cn/'

resp = requests.get(url)

print(resp.text)

它報(bào)了一個(gè)錯(cuò)

在這里插入圖片描述

我們來(lái)修改一下代碼

import requests
url = 'https://inv-veri.chinatax.gov.cn/'

resp = requests.get(url,verify = False)

print(resp.text)

我們的代碼又能成功爬取了

在這里插入圖片描述

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

相關(guān)文章

  • python中實(shí)現(xiàn)精確的浮點(diǎn)數(shù)運(yùn)算詳解

    python中實(shí)現(xiàn)精確的浮點(diǎn)數(shù)運(yùn)算詳解

    計(jì)算機(jī)智能處理可數(shù)集合的運(yùn)算,但是全體實(shí)數(shù)是不可數(shù)的,所以計(jì)算機(jī)只能用一些奇怪的方法來(lái)擬合他,于是就產(chǎn)生了浮點(diǎn)數(shù)。下面這篇文章主要給大家介紹了關(guān)于python中實(shí)現(xiàn)精確浮點(diǎn)數(shù)運(yùn)算的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 詳解Python中的偏函數(shù)(Partial Functions)

    詳解Python中的偏函數(shù)(Partial Functions)

    Python中的偏函數(shù)是來(lái)自函數(shù)式編程的一個(gè)強(qiáng)大工具,它的主要目標(biāo)是減少函數(shù)調(diào)用的復(fù)雜性這個(gè)概念可能起初看起來(lái)有點(diǎn)困難理解,但一旦你明白了它的工作方式,它可能會(huì)成為你的編程工具箱中的重要組成部分,文中有相關(guān)的代碼介紹,需要的朋友可以參考下
    2023-06-06
  • 如何使用python的subprocess執(zhí)行命令、交互、等待、是否結(jié)束及解析JSON結(jié)果

    如何使用python的subprocess執(zhí)行命令、交互、等待、是否結(jié)束及解析JSON結(jié)果

    這篇文章主要給大家介紹了關(guān)于如何使用python的subprocess執(zhí)行命令、交互、等待、是否結(jié)束及解析JSON結(jié)果的相關(guān)資料,subprocess模塊提供了一種簡(jiǎn)單的方法來(lái)創(chuàng)建和管理子進(jìn)程,它可以讓我們?cè)赑ython程序中執(zhí)行外部命令,獲取命令的輸出和錯(cuò)誤信息,需要的朋友可以參考下
    2023-12-12
  • 控制Python浮點(diǎn)數(shù)輸出位數(shù)的操作方法

    控制Python浮點(diǎn)數(shù)輸出位數(shù)的操作方法

    在python的輸出結(jié)果中,尤其是浮點(diǎn)數(shù)的輸出,當(dāng)我們需要寫(xiě)入文本文件時(shí),最好是采用統(tǒng)一的輸出格式,這樣也能夠增強(qiáng)結(jié)果的可讀性,這篇文章主要介紹了控制Python浮點(diǎn)數(shù)輸出位數(shù)的方法,需要的朋友可以參考下
    2022-04-04
  • python實(shí)現(xiàn)mean-shift聚類(lèi)算法

    python實(shí)現(xiàn)mean-shift聚類(lèi)算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)mean-shift聚類(lèi)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • PyTorch中torch.matmul()函數(shù)常見(jiàn)用法總結(jié)

    PyTorch中torch.matmul()函數(shù)常見(jiàn)用法總結(jié)

    torch.matmul()也是一種類(lèi)似于矩陣相乘操作的tensor連乘操作。但是它可以利用python中的廣播機(jī)制,處理一些維度不同的tensor結(jié)構(gòu)進(jìn)行相乘操作,這篇文章主要介紹了PyTorch中torch.matmul()函數(shù)用法總結(jié),需要的朋友可以參考下
    2023-04-04
  • python中使用urllib2獲取http請(qǐng)求狀態(tài)碼的代碼例子

    python中使用urllib2獲取http請(qǐng)求狀態(tài)碼的代碼例子

    這篇文章主要介紹了python中使用urllib2獲取http請(qǐng)求狀態(tài)碼的代碼例子,需要的朋友可以參考下
    2014-07-07
  • 淺談python新式類(lèi)和舊式類(lèi)區(qū)別

    淺談python新式類(lèi)和舊式類(lèi)區(qū)別

    python的新式類(lèi)是2.2版本引進(jìn)來(lái)的,我們可以將之前的類(lèi)叫做經(jīng)典類(lèi)或者舊式類(lèi)。這篇文章主要介紹了淺談python新式類(lèi)和舊式類(lèi)區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python OpenCV Hough直線(xiàn)檢測(cè)算法的原理實(shí)現(xiàn)

    Python OpenCV Hough直線(xiàn)檢測(cè)算法的原理實(shí)現(xiàn)

    這篇文章主要介紹了Python OpenCV Hough直線(xiàn)檢測(cè)算法的原理實(shí)現(xiàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn)

    pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn)

    本文主要介紹了pandas時(shí)間序列之pd.to_datetime()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06

最新評(píng)論

扶绥县| 临沭县| 乌兰浩特市| 襄城县| 霞浦县| 齐齐哈尔市| 香格里拉县| 申扎县| 翼城县| 营山县| 昌都县| 元氏县| 珲春市| 无棣县| 梅州市| 镇康县| 焉耆| 海阳市| 马关县| 昂仁县| 新沂市| 全椒县| 安化县| 彭州市| 益阳市| 鄂州市| 昌邑市| 太湖县| 乌鲁木齐市| 江孜县| 曲阜市| 西峡县| 永新县| 阿拉善左旗| 深州市| 青海省| 万载县| 石河子市| 龙里县| 恩施市| 东乌珠穆沁旗|