用戶:Xyy23330121/Python/HTTP 請求示例

來自維基學院

本頁面將講解使用 HTTP 請求所能做到的一些簡單操作的示例。

許多網站的 HTML 頁面在請求完畢後,還需要解析其中的 JavaScript,並額外發送一些請求。而之前涉及到的請求方式都不包含解析 JavaScript 的內容,所以本頁內容將不涉及這些網站。

從 WinRAR 官網獲取版本信息[編輯 | 編輯原始碼]

WinRAR 官網提供了一個 下載頁面。我們可以從下載頁面獲取版本信息。

程序思路[編輯 | 編輯原始碼]

通過審查元素,我們注意到網站 HTML 代碼中包含這樣的內容:

<a href="https://www.win-rar.com/fileadmin/winrar-versions/winrar/winrar-x64-700sc.exe">WinRAR 7.00 Chinese Simplified 64 bit</a>

該內容就是我們要找的版本信息。為了能篩選版本信息,我們簡單地設計一個正則表達式:

import re
pattern = r'<a href="https://www\.win-rar\.com/fileadmin/winrar-versions/winrar/winrar-x64-[0-9]*sc\.exe">WinRAR ([0-9.]*) Chinese Simplified 64 bit</a>'

這個正則表達式可以正確地篩選到版本信息。

我們簡單地發送一個請求過去:

import requests
r = requests.get("https://www.win-rar.com/download.html?&L=0")

然後在響應結果中進行正則表達式搜索:

version = re.search(pattern, r.text).group(1)

就成功獲取了版本信息。

完整代碼[編輯 | 編輯原始碼]

把上面代碼整合一下,加入一個輸出,就是:

import re
import requests

r = requests.get("https://www.win-rar.com/download.html?&L=0")
pattern = r'<a href="https://www\.win-rar\.com/fileadmin/winrar-versions/winrar/winrar-x64-[0-9]*sc\.exe">WinRAR ([0-9.]*) Chinese Simplified 64 bit</a>'
version = re.search(pattern, r.text).group(1)
print(version)