Python requests包获取URL资源实现数据抓取(1)
requests包是python使用最多的第三方URL获取资源的包,可以轻松实现get/post访问、接口测试等。本节主要介绍如何使用requests包和调用get请求,其中还有raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)错误处理,url请求头信息获取和主要参数介绍。...
requests包是python使用最多的第三方URL获取资源的包,可以轻松实现get/post访问、接口测试等。
requests安装
requests安装这里就不多赘述了,直接pip安装就可。
pip install requests
requests使用
使用前引入requests包import 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值即可。
修改后代码如下:
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包的基本使用介绍就结束了,在浏览器开发者工具中我们能看到上述url
的Headers
信息,一般在获取url资源时都会先分析对应的请求头来写代码。
-
General
(基本信息),Request Method: GET
得知是get
请求,所以调用requests.get()
方法。 -
Responsese Headers
(响应头信息),Content-Type: application/json; charset=utf-8
代表返回的内容是json格式,所以解析数据用r.encoding = 'utf-8'
编码,data = r.json()
获取json信息。 -
Request Headers
(请求头信息),这里主要的是Cookie
/User-Agent
/token
等。Cookie
一般存储浏览器认证信息,比如用户标识等,一般相同的cookie代表是同一用户访问,但是也有将认证信息用token
的传递的。
小结
本节介绍了requests包调用get请求的基础使用方法,同时介绍了浏览器头信息的获取方法和对应基本参数的含义,希望对你有帮助。
更多推荐
所有评论(0)