跳转到内容

User: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)