小編寫這篇文章的主要目的,是來給大家去做一個介紹,介紹的內(nèi)容是python requests庫,包括介紹它的一些安裝方法,以及怎樣才能夠迅速的去進(jìn)行安裝。另外,還需要介紹的就是其使用方法,就具體的內(nèi)容,下面小編就給大家詳細(xì)解答下。
前言
記得我剛學(xué)python-requests庫的時候總會有點(diǎn)暈,于是我做了以下關(guān)于requests庫的知識點(diǎn)整理,方便初學(xué)者可以更好的了解requests庫。如果有補(bǔ)充或錯誤,或者不懂的地方,可以評論區(qū)留言。
1、Requests介紹
Requests是Python一個很實(shí)用的HTTP客戶端,完全滿足如今網(wǎng)絡(luò)爬蟲的需求
urllib庫和requests庫功能類似,但requests庫功能更多更實(shí)用
2、requests庫的安裝
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安裝目錄,之后打開解壓文
運(yùn)行命令行輸入python setup.py install即可安裝
測試
import requests
如果沒提示錯誤,那說明已經(jīng)安裝成功了!
3、requests庫常用的方法
最常用的方法為get()和post()分別用于發(fā)送Get請求和Post請求
4、response對象的常用屬性
5、使用requests發(fā)送get請求
不帶參數(shù)的get請求
案例:爬取百度主頁
帶參數(shù)的get請求
案例:貼吧
獲取JSON數(shù)據(jù)
案例:百度美女圖片
獲取二進(jìn)制數(shù)據(jù)
案例:下載百度logo
5.1不帶參數(shù)的get請求
#不帶參數(shù)的get請求 import requests url='http://www.baidu.com' resp=requests.get(url) #設(shè)置響應(yīng)的經(jīng)編碼格式 resp.encoding='utf-8' cookie=resp.cookies#獲取請求后的cookie信息 headers=resp.headers print('響應(yīng)狀態(tài)碼:',resp.status_code) print('請求后的cookie:',cookie) print('獲取請求的網(wǎng)址:',resp.url) print('響應(yīng)頭:',headers) print('響應(yīng)內(nèi)容',resp.text)
----------------------------------以下為輸出結(jié)果----------------------------------
''' 響應(yīng)狀態(tài)碼:200 請求后的cookie:<RequestsCookieJar[<Cookie BDORZ=27315 for.baidu.com/>]> 獲取請求的網(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請求
5.2.1查詢參數(shù)params
params,數(shù)據(jù)類型為字典
作用:對URL地址中的查詢參數(shù)自動進(jìn)行編碼拼接
使用示例:resp=requests.get(url=baseurl,params=params,headers=headers)
#帶參數(shù)的get請求 import requests url='https://tieba.baidu.com/f?' params={'kw':'大學(xué)吧','pn':'3'} headers={'User-Agent':'Mozilla/5.0(Windows NT 6.1;WOW64)'} #開始請求 html=requests.get(url=url,params=params,headers=headers).text print(html)
5.2.2 SSL證書認(rèn)證參數(shù)verify
參數(shù)值:True(默認(rèn))|False
適用網(wǎng)站:https類型網(wǎng)站但是沒有經(jīng)過證書認(rèn)證機(jī)構(gòu)認(rèn)證的網(wǎng)站
適用場景:當(dāng)程序中拋出SSLError異常則考慮使用此參數(shù)
使用示例:requests.get(url=url,headers=headers,verify=False)
當(dāng)verify參數(shù)設(shè)置為False時,則不會再對網(wǎng)站進(jìn)行SSL證書認(rèn)證
5.2.3設(shè)置超時時間timeout
我們可以通過timeout屬性設(shè)置超時時間,一旦超過這個時間還沒獲得響應(yīng)內(nèi)容,就會提示錯誤。
import requests requests.get('http://github.com',timeout=0.001) ---------------------以下為輸出結(jié)果(報錯)--------------------- 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
語法格式:proxies={'協(xié)議':'協(xié)議://IP:端口號'}
示例:
當(dāng)我們抓取的地址為http時,則會選擇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ú)享代理
語法格式:proxies={'協(xié)議':'協(xié)議://用戶名:密碼 IP:端口號'}
示例:
5.3獲取JSON數(shù)據(jù)
#獲取json數(shù)據(jù) #案例:百度獲取宮崎駿動漫圖片 #滑動頁面,URL沒變化,F(xiàn)12中的文件越來越多,說明這是動態(tài)網(wǎng)頁 #選擇XHR中的一個,復(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ù)
一般來說,對于非文本請求,可以以字節(jié)形式訪問響應(yīng)正文。
#獲取二進(jìn)制數(shù)據(jù) #案例:保存百度圖片 import requests url='https://www.baidu.com/img/bd_logo1.png' resp=requests.get(url) #存儲 with open('logo.png','wb')as file: #resp.content:把response對象轉(zhuǎn)換為二進(jìn)制數(shù)據(jù) file.write(resp.content)
6、使用requests發(fā)送post請求
語法結(jié)構(gòu)
requests.post(url,data=None,json=None)
參數(shù)說明
url:需要爬取的網(wǎng)站的網(wǎng)址
data:請求數(shù)據(jù)
json:json格式的數(shù)據(jù)
案例:登錄小說樓
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ā)送請求
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736','password':'57365736','action':'login'} #使用session發(fā)送請求 session=requests.session() resp=session.post(url,data=data)#使用session發(fā)送post請求 resp.encoding='gb2312' #print(resp.text)#<html>..<title>登錄成功</title>....</html>
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)砀嗟膸椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/128271.html
摘要:快速開始在安裝之前在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。踏出第一步我們將正式使用來構(gòu)建一個項(xiàng)目,讓我們踏出第一步,利用來編寫一個返回字符串的服務(wù)程序。本次示例的源代碼全部在上,見。 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標(biāo)...
摘要:由于是同一起進(jìn)行分發(fā)和安裝的,因此無需使用進(jìn)行安裝。首先用進(jìn)行安裝向發(fā)送請求輸出結(jié)果我們剛剛向發(fā)出了一個請求,同時創(chuàng)建了一個名為的對象,之后使用內(nèi)置的解碼器來處理我們請求的內(nèi)容。當(dāng)每個請求成功后,響應(yīng)內(nèi)容將被添加到數(shù)據(jù)列表中。 翻譯:瘋狂的技術(shù)宅原文標(biāo)題:HTTP Requests in Python 3原文鏈接:https://www.twilio.com/blog/2...本文首發(fā)...
摘要:代碼如散文作為一門計(jì)算機(jī)語言來說,會有下面的特點(diǎn)。而則通過這些擴(kuò)展庫將眾多的開源函數(shù)庫連接在一起,是名符其實(shí)的膠水語言。下面是我們將會在后面用到的代碼在線查看一步步搭建物聯(lián)網(wǎng)系統(tǒng)圖靈電子書版一步步搭建物聯(lián)網(wǎng)系統(tǒng) Python 代碼如散文 showImg(http://designiot.phodal.com/images/python.png); 作為一門計(jì)算機(jī)語言來說,Pytho...
摘要:下一篇文章網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)請求庫安裝爬蟲可以簡單分為幾步抓取頁面分析頁面存儲數(shù)據(jù)。相關(guān)鏈接官方網(wǎng)站官方文檔中文文檔安裝驗(yàn)證安裝進(jìn)入命令行交互模式,導(dǎo)入一下包,如果沒有報錯,則證明安裝成功。 下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---2、請求庫安裝:GeckoDriver、PhantomJS、Aiohttp 爬蟲可以簡單分為幾步:抓取頁面、分析頁面、存儲數(shù)據(jù)。 在第一步抓取頁面的過程中,...
摘要:項(xiàng)目簡介使用抓取網(wǎng)站信息提供一個命令行的火車票查詢工具。項(xiàng)目由小蝸牛發(fā)布在實(shí)驗(yàn)樓,項(xiàng)目在線練習(xí)地址實(shí)現(xiàn)火車票查詢工具,可以直接在教程中下載代碼使用。命令行參數(shù)解析工具。 showImg(https://segmentfault.com/img/remote/1460000006767253);項(xiàng)目簡介:使用 Python3 抓取 12306 網(wǎng)站信息提供一個命令行的火車票查詢工具。通過...
閱讀 1066·2023-01-14 11:38
閱讀 1062·2023-01-14 11:04
閱讀 901·2023-01-14 10:48
閱讀 2377·2023-01-14 10:34
閱讀 1147·2023-01-14 10:24
閱讀 1026·2023-01-14 10:18
閱讀 654·2023-01-14 10:09
閱讀 733·2023-01-14 10:02