超时的使用
import requests
try:
url = "http://www.google.com/"
response = requests.get(url,timeout = 3)
# 连接+读取分离
# response = requests.get(url,timeout = (5,11,30))
# 永久等待
# response = requests.get(url,timeout=None)
# 永久等待
# response = requests.get(url)
print(response.text)
print(response.status_code)
except Exception as e:
print("get http://www.google.com/ failed")
print("over")
Request对象构造
from requests import Request, Session
url = 'http://httpbin.org/post'
data = {
'name': 'germey'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36'
}
s = Session()
req = Request('POST', url, data=data, headers=headers)
prepped = s.prepare_request(req)
r = s.send(prepped)
print(r.text)
auth认证
import requests
from requests.auth import HTTPBasicAuth
# 第一种繁琐写法
r = requests.get('http://localhost:5000', auth=HTTPBasicAuth('username', 'password'))
print(r.status_code)
# 第二种简便写法
r = requests.get('http://localhost:5000', auth=('username', 'password'))
print(r.status_code)
chardet编码
import requests
import chardet
response = requests.get("http://www.baidu.cn")
# 注意这里使用text会报错
print(chardet.detect(response.content))
# 设置编码(检测网页编码)
response.encoding = chardet.detect(response.content)
# print response.text
print(response.history) # 指的是跳转历史
print(response.url) # 最终响应的url http://www.baidu.cn--->http://www.baidu.com/
数据展示如下
{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}
[<Response [302]>]
http://www.baidu.com/