requests包是python使用最多的第三方URL获取资源的包,可以轻松实现get/post访问、接口测试等。

requests安装

requests安装这里就不多赘述了,直接pip安装就可。

pip install requests

requests使用

使用前引入requestsimport requests,调用get()方法执行get请求,具体代码如下:

import requests

# 获取豆瓣电影首页标签
url = 'https://movie.douban.com/j/search_tags?type=movie&source=index'
r = requests.get(url)
r.encoding = 'utf-8'
data = r.json()
print(data)

当在执行这段代码时会发现报错,信息如下。这是因为豆瓣的访问需要在请求头中添加浏览器信息User-Agent,代表是通过浏览器访问。

    ...
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

如何获取浏览器User-Agent信息?

打开浏览器,按F12或者点击设置,打开开发者工具。然后选择Network,找一个连接查看Headers信息,复制出User-Agent的value值即可。

url headers user-anent

修改后代码如下:

import requests

# 请求头中添加浏览器信息
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Edg/103.0.1264.71'
    }

# 获取豆瓣电影首页标签
url = 'https://movie.douban.com/j/search_tags?type=movie&source=index'
r = requests.get(url, headers=headers)
r.encoding = 'utf-8'
data = r.json()
print(data)

执行后输出信息如下:

{'tags': ['热门', '最新', '豆瓣高分', '冷门佳片', '华语', '欧美', '韩国', '日本']}

到这里requests包的基本使用介绍就结束了,在浏览器开发者工具中我们能看到上述urlHeaders信息,一般在获取url资源时都会先分析对应的请求头来写代码。

  1. General(基本信息),Request Method: GET得知是get请求,所以调用requests.get()方法。

  2. Responsese Headers(响应头信息),Content-Type: application/json; charset=utf-8代表返回的内容是json格式,所以解析数据用r.encoding = 'utf-8'编码,data = r.json()获取json信息。

  3. Request Headers(请求头信息),这里主要的是Cookie/User-Agent/token等。Cookie一般存储浏览器认证信息,比如用户标识等,一般相同的cookie代表是同一用户访问,但是也有将认证信息用token的传递的。

小结

本节介绍了requests包调用get请求的基础使用方法,同时介绍了浏览器头信息的获取方法和对应基本参数的含义,希望对你有帮助。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐