requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,requests 允许你发送 HTTP/1.1 请求。指定 URL并添加查询url字符串即可开始爬取网页信息等操作
因为是第三方库,所以使用前需要cmd安装
pip install requests
小试牛刀:
# 导入 requests 包
import requests
# 发送请求
x = requests.get('https://www.baidu.com/')
# 返回网页内容
print(x.text)
每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。
response方法
方法 | 描述 |
---|---|
delete(url, args) | 发送 DELETE 请求到指定 url |
get(url, params, args) | 发送 GET 请求到指定 url |
head(url, args) | 发送 HEAD 请求到指定 url |
patch(url, data, args) | 发送 PATCH 请求到指定 url |
post(url, data, json, args) | 发送 POST 请求到指定 url |
put(url, data, args) | 发送 PUT 请求到指定 url |
request(method, url, args) | 向指定的 url 发送指定的请求方法 |
请求时常用参数
kw = {'s':'python'}
# 设置请求头
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("https://www.baidu.com/", params = kw, headers = headers)
# https://www.baidu.com/?s=python
requests.post(url, data={key: value}, json={key: value}, args)
# 导入 requests 包
import requests
# 发送请求
x = requests.post('https://www.baidu.com/try/ajax/demo_post.php')
# 返回网页内容
print(x.text)
带请求体发送
# 导入 requests 包
import requests
# 表单参数,参数名为 fname 和 lname
myobj = {'fname': 'baidu','lname': 'Boy'}
# 发送请求
x = requests.post('https://www.baidu.com/try/ajax/demo_post2.php', data = myobj)
# 返回网页内容
print(x.text)