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