基本用法
1. GET请求
- 基本案例
import requests
r = requests.get('http://www.baidu.com')
print(r.text)
返回结果应该是一个H5的文档树
另外,网页的返回类型实际上是str类型,但是它很特殊,是JSON 格式的。所以,如果想直接
解析返回结果,得到一个字典格式的话,可以直接调用json()方法。
import requests
r = requests.get('http://httpbin.org/get')
print(type(r.text))
print(r.json())
print(type(r.json()))
可以发现,调用json()方法,就可以将返回结果是JSON 格式的字符串转化为字典。
但需要注意的书,如果返回结果不是JSON 格式,便会出现解析错误,抛出json.decoder. JSQNDecodeError异常。
- 抓取知乎网页
import requests
import re
headers = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
r = requests.get('https://www.zhihu.com/explore', headers=headers)
pattern = re.compile('explore-feed.*?question_link.*?>(.*?)</a>', re.S)
titles = re.findall(pattern, r.text)
print(titles)
返回结果是一个HTML文档
- 抓取二进制数据
图片、音频、视频这些文件本质上都是由二进制码组成的,下面以GitHub的站点图标为案例
import requests
r = requests.get('https://github.com/favicon.ico')
print(r.text)
print(r.content)
输出结果
输出前者出现了乱码,后者结果前带有一个b,这代表是bytes类型的数据。图片是二进制数据,r.text直