Python如何使用Requests請求網頁
Requests 繼承了urllib2的所有特性。
Requests支援HTTP連線保持和連線池,支援使用cookie保持會話,支援檔案上傳,支援自動決定回應內容的編碼,支援國際化的 URL 和 POST 資料自動編碼。
安裝方式
利用pip 安裝
$ pip install requests
GET請求
基本GET請求(headers參數和parmas參數)
1.最基本的GET請求可以直接用get方法'
response = requests.get("http://www.baidu.com/") # 也可以这么写 # response = requests.request("get", "http://www.baidu.com/")
2.新增headers 和查詢參數
如果想加入headers,可以傳入headers參數來增加請求頭中的headers資訊。
如果要將參數放在url中傳遞,可以利用 params 參數。
import requests kw = {'wd':'长城'} headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"} # params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode() response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers) # 查看响应内容,response.text 返回的是Unicode格式的数据 print (response.text) # 查看响应内容,response.content返回的字节流数据 print (respones.content) # 查看完整url地址 print (response.url) # 查看响应头部字符编码 print (response.encoding) # 查看响应码 print (response.status_code)
運行結果
......
......
'http://www.baidu .com/s?wd=長城'
'utf-8'
#200
使用response.text 時,Requests 會基於HTTP 回應的文字編碼自動解碼回應內容,大多數Unicode 字元集都能無縫解碼。
使用response.content 時,傳回的是伺服器回應資料的原始二進位位元組流,可以用來保存圖片等二進位檔案。
POST方法
1.基本的POST的請求
response = requests.post("http://www.baidu.com/",data = data)
2.body帶參數##
formdata = { "type": "AUTO", "doctype": "json", "key": "www", "ue": "UTF-8", } url = "http://auto-installment/v1/loan-credit-check" response = requests.post(url,data = data,headers=headers) print(response.text)#显示返回结果 print(response.json())# 如果是json文件可以直接显示
# 1. 创建session对象,可以保存Cookie值 session = requests.session() # 2. 需要登录的用户名和密码 data = {"username": "mxxxx", "password": "1233444"} # 3. 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里 session.post("https://www.jianshu.com/sign_in", data=data) # 4. ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面 response = session.get("https://www.jianshu.com/writer#/")
1.在使用requests去請求一個介面時,出現報錯的情況,但是這個介面本身卻沒有問題。 這是因為介面的請求參數有兩種情況:簡單型別(一般少於3個)和複雜物件類型。
解決方法:在headers中定義這兩個參數的類型簡單類型:headers={"Content-Type": "application/x-www-form-urlencoded"} 複雜物件類型:headers={"Content-Type":application/json}2.某些HTTPS請求存在SSL憑證驗證
#解決方法:response = requests.get("https://www.baidu.com/", verify=False)擴充1.requests請求失敗後,增加重試機制(若失敗,將會重試3次)
request_retry = requests.adapatrs.HTTPAdapaters(max_retries=3) session.mount('https://',request_retry)
#2.使用grequests實作非同步請求
urls = [ 'http://www.url1.com', 'http://www.url2.com', 'http://www.url3.com', 'http://www.url4.com', 'http://www.url5.com', ] resp = (grequests.get(u) for u in urls) grequests.map(resp)
#3.自訂cookies
我們使用Session實例來保持請求之間的cookies,但是有些特殊情況,需要使用自訂的cookies我們使用Session實例來保持請求之間的cookies,但是有些特殊情況,需要使用自訂的cookies# 自定义cookies cookie = {'guid':'5BF0FAB4-A7CF-463E-8C17-C1576fc7a9a8','uuid':'3ff5f4091f35a467'} session.post('http://', cookies=cookie)
4.統計一個API請求花費的時間
session.get(url).elapsed.total_seconds()
5.設定請求逾時
session.get(url, timeout=15)
6.檔案上傳
Requests利用files作為參數模擬提交檔案資料file = {'file':open('test.bmp','rb')} #rb表示用二进制格式打开指定目录下的文件,且用于只读 r =requests.post('http://',files=file) print(r.text)
以上是Python如何使用Requests請求網頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

HadiDB:輕量級、高水平可擴展的Python數據庫HadiDB(hadidb)是一個用Python編寫的輕量級數據庫,具備高度水平的可擴展性。安裝HadiDB使用pip安裝:pipinstallhadidb用戶管理創建用戶:createuser()方法創建一個新用戶。 authentication()方法驗證用戶身份。 fromhadidb.operationimportuseruser_obj=user("admin","admin")user_obj.

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

作為數據專業人員,您需要處理來自各種來源的大量數據。這可能會給數據管理和分析帶來挑戰。幸運的是,兩項 AWS 服務可以提供幫助:AWS Glue 和 Amazon Athena。

啟動 Redis 服務器的步驟包括:根據操作系統安裝 Redis。通過 redis-server(Linux/macOS)或 redis-server.exe(Windows)啟動 Redis 服務。使用 redis-cli ping(Linux/macOS)或 redis-cli.exe ping(Windows)命令檢查服務狀態。使用 Redis 客戶端,如 redis-cli、Python 或 Node.js,訪問服務器。

要從 Redis 讀取隊列,需要獲取隊列名稱、使用 LPOP 命令讀取元素,並處理空隊列。具體步驟如下:獲取隊列名稱:以 "queue:" 前綴命名,如 "queue:my-queue"。使用 LPOP 命令:從隊列頭部彈出元素並返回其值,如 LPOP queue:my-queue。處理空隊列:如果隊列為空,LPOP 返回 nil,可先檢查隊列是否存在再讀取元素。

問題:如何查看 Redis 服務器版本?使用命令行工具 redis-cli --version 查看已連接服務器的版本。使用 INFO server 命令查看服務器內部版本,需解析返回信息。在集群環境下,檢查每個節點的版本一致性,可使用腳本自動化檢查。使用腳本自動化查看版本,例如用 Python 腳本連接並打印版本信息。
