Requests的使用
在test的目录下我们新建一个名为“requests的使用”的python脚本,并输入以下代码:
1
2
3
4
5
6
7
8
9
10
import requests
url = "https://www.baidu.com"
r = requests.get(url)
print(r.status_code)
print(r.headers)
print(r.encoding)
print(r.text)
print(r.cookies)
这是一组常用的requests代码,下面逐步分析其返回值。
- r.status_code - 1 - 200 - 表明我们的请求正常返回。 
- r.headers - 1 - {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Mon, 03 Jul 2023 09:21:51 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:24:18 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}- 注意看,这里的Content-Type字段为text/html,并没有编码,暗示了此次请求的编码是使用默认编码进行解析。 
- r.encoding - 1 - ISO-8859-1 - 使用默认编码 
- r.text - 可以看到,该html语言带有大量的乱码文本,进一步验证了我们编码错误的问题。 - 但是,我们在前面的 - meta行可以看到,- charset=utf-8说明该网页的文本编码为UTF-8。
- r.cookies - 1 - <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]> 
下面我们修改编码以正确抓取网页。
1
2
3
4
5
# 在刚刚的代码后面加上这几行
r.encoding = 'utf-8'
# 再次查看文本是否能正确解析
print(r.text)
得到的结果为:
可以看到,中文已被正确解析。
 
 
