小編寫(xiě)這篇文章的主要目的,是來(lái)給大家去做一個(gè)介紹,介紹的內(nèi)容是python requests庫(kù),包括介紹它的一些安裝方法,以及怎樣才能夠迅速的去進(jìn)行安裝。另外,還需要介紹的就是其使用方法,就具體的內(nèi)容,下面小編就給大家詳細(xì)解答下。
前言
記得我剛學(xué)python-requests庫(kù)的時(shí)候總會(huì)有點(diǎn)暈,于是我做了以下關(guān)于requests庫(kù)的知識(shí)點(diǎn)整理,方便初學(xué)者可以更好的了解requests庫(kù)。如果有補(bǔ)充或錯(cuò)誤,或者不懂的地方,可以評(píng)論區(qū)留言。
1、Requests介紹
Requests是Python一個(gè)很實(shí)用的HTTP客戶端,完全滿足如今網(wǎng)絡(luò)爬蟲(chóng)的需求
urllib庫(kù)和requests庫(kù)功能類(lèi)似,但requests庫(kù)功能更多更實(shí)用
2、requests庫(kù)的安裝
pip命令安裝(方法一)
windows操作系統(tǒng):pip install requests
Mac操作系統(tǒng):pip3 install requests
Linux操作系統(tǒng):sodo pip install requests
源碼安裝(方法二)
下載requests源碼http://mirrors.aliyun.com/pypi/simple/requests/
下載文件到本地之后,解壓到Python安裝目錄,之后打開(kāi)解壓文
運(yùn)行命令行輸入python setup.py install即可安裝
測(cè)試
import requests
如果沒(méi)提示錯(cuò)誤,那說(shuō)明已經(jīng)安裝成功了!
3、requests庫(kù)常用的方法
最常用的方法為get()和post()分別用于發(fā)送Get請(qǐng)求和Post請(qǐng)求
4、response對(duì)象的常用屬性
5、使用requests發(fā)送get請(qǐng)求
不帶參數(shù)的get請(qǐng)求
案例:爬取百度主頁(yè)
帶參數(shù)的get請(qǐng)求
案例:貼吧
獲取JSON數(shù)據(jù)
案例:百度美女圖片
獲取二進(jìn)制數(shù)據(jù)
案例:下載百度logo
5.1不帶參數(shù)的get請(qǐng)求
#不帶參數(shù)的get請(qǐng)求 import requests url='http://www.baidu.com' resp=requests.get(url) #設(shè)置響應(yīng)的經(jīng)編碼格式 resp.encoding='utf-8' cookie=resp.cookies#獲取請(qǐng)求后的cookie信息 headers=resp.headers print('響應(yīng)狀態(tài)碼:',resp.status_code) print('請(qǐng)求后的cookie:',cookie) print('獲取請(qǐng)求的網(wǎng)址:',resp.url) print('響應(yīng)頭:',headers) print('響應(yīng)內(nèi)容',resp.text)
----------------------------------以下為輸出結(jié)果----------------------------------
''' 響應(yīng)狀態(tài)碼:200 請(qǐng)求后的cookie:<RequestsCookieJar[<Cookie BDORZ=27315 for.baidu.com/>]> 獲取請(qǐng)求的網(wǎng)址:http://www.baidu.com/ 響應(yīng)頭:{'Cache-Control':'private,no-cache,no-store,proxy-revalidate,no-transform','Connection':'keep-alive','Content-Encoding':'gzip','Content-Type':'text/html','Date':'Fri,23 Apr 2021 00:10:35 GMT','Last-Modified':'Mon,23 Jan 2017 13:28:16 GMT','Pragma':'no-cache','Server':'bfe/1.0.8.18','Set-Cookie':'BDORZ=27315;max-age=86400;domain=.baidu.com;path=/','Transfer-Encoding':'chunked'} 響應(yīng)內(nèi)容<!DOCTYPE html> <!--STATUS OK--><html><head><meta http-equiv=content-type......... '''
5.2帶參數(shù)的get請(qǐng)求
5.2.1查詢參數(shù)params
params,數(shù)據(jù)類(lèi)型為字典
作用:對(duì)URL地址中的查詢參數(shù)自動(dòng)進(jìn)行編碼拼接
使用示例:resp=requests.get(url=baseurl,params=params,headers=headers)
#帶參數(shù)的get請(qǐng)求 import requests url='https://tieba.baidu.com/f?' params={'kw':'大學(xué)吧','pn':'3'} headers={'User-Agent':'Mozilla/5.0(Windows NT 6.1;WOW64)'} #開(kāi)始請(qǐng)求 html=requests.get(url=url,params=params,headers=headers).text print(html)
5.2.2 SSL證書(shū)認(rèn)證參數(shù)verify
參數(shù)值:True(默認(rèn))|False
適用網(wǎng)站:https類(lèi)型網(wǎng)站但是沒(méi)有經(jīng)過(guò)證書(shū)認(rèn)證機(jī)構(gòu)認(rèn)證的網(wǎng)站
適用場(chǎng)景:當(dāng)程序中拋出SSLError異常則考慮使用此參數(shù)
使用示例:requests.get(url=url,headers=headers,verify=False)
當(dāng)verify參數(shù)設(shè)置為False時(shí),則不會(huì)再對(duì)網(wǎng)站進(jìn)行SSL證書(shū)認(rèn)證
5.2.3設(shè)置超時(shí)時(shí)間timeout
我們可以通過(guò)timeout屬性設(shè)置超時(shí)時(shí)間,一旦超過(guò)這個(gè)時(shí)間還沒(méi)獲得響應(yīng)內(nèi)容,就會(huì)提示錯(cuò)誤。
import requests requests.get('http://github.com',timeout=0.001) ---------------------以下為輸出結(jié)果(報(bào)錯(cuò))--------------------- Traceback(most recent call last): File"<stdin>",line 1,in<module> requests.exceptions.Timeout:HTTPConnectionPool(host='github.com',port=80):Request timed out.(timeout=0.001)
5.2.4代理IP參數(shù)proxies
5.2.4.1免費(fèi)代理IP
語(yǔ)法格式:proxies={'協(xié)議':'協(xié)議://IP:端口號(hào)'}
示例:
當(dāng)我們抓取的地址為http時(shí),則會(huì)選擇proxies中http的代理,反之為https
import requests url='http://httpbin.org/get' headers={'User-Agent':'Mozilla/5.0'} #定義代理,再代理IP網(wǎng)站中查找免費(fèi)代理IP proxies={ 'http':'http://112.85.164.220:9999', 'https':'https://112.85.164.220:9999' } html=requests.get(url=url,proxies=proxies,headers=headers,timeout=5).text print(html)
5.2.4.1私密代理和獨(dú)享代理
語(yǔ)法格式:proxies={'協(xié)議':'協(xié)議://用戶名:密碼 IP:端口號(hào)'}
示例:
5.3獲取JSON數(shù)據(jù)
#獲取json數(shù)據(jù) #案例:百度獲取宮崎駿動(dòng)漫圖片 #滑動(dòng)頁(yè)面,URL沒(méi)變化,F(xiàn)12中的文件越來(lái)越多,說(shuō)明這是動(dòng)態(tài)網(wǎng)頁(yè) #選擇XHR中的一個(gè),復(fù)制其Request URL,粘貼給url import requests url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10167214135414424439&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%AE%AB%E5%B4%8E%E9%AA%8F%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&word=%E5%AE%AB%E5%B4%8E%E9%AA%8F%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&expermode=&force=&pn=30&rn=30&gsm=1e&1619134335166=' resp=requests.get(url) json_data=resp.json() print(json_data)
5.4獲取二進(jìn)制數(shù)據(jù)
一般來(lái)說(shuō),對(duì)于非文本請(qǐng)求,可以以字節(jié)形式訪問(wèn)響應(yīng)正文。
#獲取二進(jìn)制數(shù)據(jù) #案例:保存百度圖片 import requests url='https://www.baidu.com/img/bd_logo1.png' resp=requests.get(url) #存儲(chǔ) with open('logo.png','wb')as file: #resp.content:把response對(duì)象轉(zhuǎn)換為二進(jìn)制數(shù)據(jù) file.write(resp.content)
6、使用requests發(fā)送post請(qǐng)求
語(yǔ)法結(jié)構(gòu)
requests.post(url,data=None,json=None)
參數(shù)說(shuō)明
url:需要爬取的網(wǎng)站的網(wǎng)址
data:請(qǐng)求數(shù)據(jù)
json:json格式的數(shù)據(jù)
案例:登錄小說(shuō)樓
https://www.xslou.com/login.php
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736','password':'57365736','action':'login'} resp=requests.post(url,data) resp.encoding='gb2312' print('響應(yīng)狀態(tài)碼:',resp.status_code)#200 print('響應(yīng)內(nèi)容',resp.text)#<html>......</html>
7、使用requests的session發(fā)送請(qǐng)求
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736','password':'57365736','action':'login'} #使用session發(fā)送請(qǐng)求 session=requests.session() resp=session.post(url,data=data)#使用session發(fā)送post請(qǐng)求 resp.encoding='gb2312' #print(resp.text)#<html>..<title>登錄成功</title>....</html>
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)更多的幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/128271.html
摘要:快速開(kāi)始在安裝之前在支持異步的過(guò)程中,都經(jīng)歷了哪些比較重大的更新。踏出第一步我們將正式使用來(lái)構(gòu)建一個(gè)項(xiàng)目,讓我們踏出第一步,利用來(lái)編寫(xiě)一個(gè)返回字符串的服務(wù)程序。本次示例的源代碼全部在上,見(jiàn)。 快速開(kāi)始 在安裝Sanic之前,讓我們一起來(lái)看看Python在支持異步的過(guò)程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標(biāo)...
摘要:由于是同一起進(jìn)行分發(fā)和安裝的,因此無(wú)需使用進(jìn)行安裝。首先用進(jìn)行安裝向發(fā)送請(qǐng)求輸出結(jié)果我們剛剛向發(fā)出了一個(gè)請(qǐng)求,同時(shí)創(chuàng)建了一個(gè)名為的對(duì)象,之后使用內(nèi)置的解碼器來(lái)處理我們請(qǐng)求的內(nèi)容。當(dāng)每個(gè)請(qǐng)求成功后,響應(yīng)內(nèi)容將被添加到數(shù)據(jù)列表中。 翻譯:瘋狂的技術(shù)宅原文標(biāo)題:HTTP Requests in Python 3原文鏈接:https://www.twilio.com/blog/2...本文首發(fā)...
摘要:代碼如散文作為一門(mén)計(jì)算機(jī)語(yǔ)言來(lái)說(shuō),會(huì)有下面的特點(diǎn)。而則通過(guò)這些擴(kuò)展庫(kù)將眾多的開(kāi)源函數(shù)庫(kù)連接在一起,是名符其實(shí)的膠水語(yǔ)言。下面是我們將會(huì)在后面用到的代碼在線查看一步步搭建物聯(lián)網(wǎng)系統(tǒng)圖靈電子書(shū)版一步步搭建物聯(lián)網(wǎng)系統(tǒng) Python 代碼如散文 showImg(http://designiot.phodal.com/images/python.png); 作為一門(mén)計(jì)算機(jī)語(yǔ)言來(lái)說(shuō),Pytho...
摘要:下一篇文章網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)請(qǐng)求庫(kù)安裝爬蟲(chóng)可以簡(jiǎn)單分為幾步抓取頁(yè)面分析頁(yè)面存儲(chǔ)數(shù)據(jù)。相關(guān)鏈接官方網(wǎng)站官方文檔中文文檔安裝驗(yàn)證安裝進(jìn)入命令行交互模式,導(dǎo)入一下包,如果沒(méi)有報(bào)錯(cuò),則證明安裝成功。 下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---2、請(qǐng)求庫(kù)安裝:GeckoDriver、PhantomJS、Aiohttp 爬蟲(chóng)可以簡(jiǎn)單分為幾步:抓取頁(yè)面、分析頁(yè)面、存儲(chǔ)數(shù)據(jù)。 在第一步抓取頁(yè)面的過(guò)程中,...
摘要:項(xiàng)目簡(jiǎn)介使用抓取網(wǎng)站信息提供一個(gè)命令行的火車(chē)票查詢工具。項(xiàng)目由小蝸牛發(fā)布在實(shí)驗(yàn)樓,項(xiàng)目在線練習(xí)地址實(shí)現(xiàn)火車(chē)票查詢工具,可以直接在教程中下載代碼使用。命令行參數(shù)解析工具。 showImg(https://segmentfault.com/img/remote/1460000006767253);項(xiàng)目簡(jiǎn)介:使用 Python3 抓取 12306 網(wǎng)站信息提供一個(gè)命令行的火車(chē)票查詢工具。通過(guò)...
閱讀 926·2023-01-14 11:38
閱讀 899·2023-01-14 11:04
閱讀 758·2023-01-14 10:48
閱讀 2063·2023-01-14 10:34
閱讀 965·2023-01-14 10:24
閱讀 844·2023-01-14 10:18
閱讀 512·2023-01-14 10:09
閱讀 590·2023-01-14 10:02