request的请求方法
r = requests.get(url)
r = requests.post(url,data=xxx)
r = requests.put(url)
r = requests.delete(url)
r = requests.head(url)
r = requests.options(url)
代理认证
两种方式,字典形式
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}#不论是http还是https都让其通过8080端口
proxies = {
"http": "http://user:pass@10.10.1.10:3128/",
}#代理需要用户名密码的情况下
查看http状态码/响应码
http状态码(HTTP Status Code)
HTTP状态码分类
分类 | 分类描述 |
---|---|
1xx | 信息,服务器收到请求,需要请求者继续执行操作 |
2xx | 成功,操作被成功接收并处理 |
3xx | 重定向,需要进一步的操作以完成请求 |
4xx | 客户端错误,请求包含语法错误或无法完成请求 |
5xx | 服务器错误,服务器在处理请求的过程中发生了错误 |
常见http状态码
状态码 | 描述 |
---|---|
200 | 请求成功 |
301 | 资源(网页等)被永久转移到其它URL(网页跳转) |
404 | 请求的资源(网页等)不存在 |
500 | 内部服务器错误 |
print r.status_code
重定向
r = requests.get(url, allow_redirects=False)
requests默认进行跳转
print r.history
history命令显示历史跳转次数
查看相应内容
print r.text
使用print r.text中文有可能出现乱码
print r.content
建议用content
修改系统默认编码格式
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
查看请求头
print r.request.headers
响应包头
print r.headers
查看请求参数
print r.request.body
查看响应头
print r.headers
保存返回的结果
fh = open("abc.png", 'w')
fh.write(r.content)
fh.close()
查看返回的编码格式
print r.encoding
更改返回的编码格式
r.encoding = "utf-8"
添加header头
headers = {'user-agent': 'my-aasdasdaspp/0.0.1', 'asd':'hello world!'}
在请求过程中加上就好(字典形式)
修改cookie
cookies = dict(cookies_are='working')
获得响应头中的cookie
print r.cookies['domain']
如何发送post请求
payload = {'name': 'loop', 'age': '12'}
r = requests.post("http://httpbin.org/post", data=payload)
设置超时
r = requests.get(url, timeout=5)
r = requests.get(url, timeout=None)
使用session
conn = requests.session()
r = conn.get(url)
print r.request.headers
r = conn.get(url)
print r.request.headers
保存第一次的cookies
请求方法
r = requests.post(url, proxies=proxies, headers=headers, cookies=cookies, verify=False, data=payload)