导入模块
使用requests库之前需要先导入模块。
import requests
发送请求
requests模块发出get请求,即可获取整个网页的信息,也可以加入params来传递参数,params是个字典,加入headers
r = requests.get('http://httpbin.org')
r = requests.get('http://httpbin.org',params = data)
headers= {'user-agent':'my-app/0.0.1'}
r = requests.get(url,headers=headers)
r.url来获取url
或者也可以使用post请求
r = requests.post('http://httpbin.org/post', data = {'key':'value'})
响应内容
r.text文本
r.content二进制文件(图片)
r.json()处理json数据
r.status_code响应码
r.headers响应头,字典形式
cookie
响应中访问字典
url =
r = requests.get(url)
r.cookies['example_cookie_name']
请求cookie
url = 'http://httpbin.org/cookies'
cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies)
r.text
cookie返回对象是RequstsCookieJar,可以将此对象传入Requests中进行请求
jar = requests.cookies.RequestsCookieJar()
jar.set('tasty_cookie','yum',domain='httpbin.org', path='/cookies')
url = requests.get(url,cookies=jar)
r.text
会话对象
会话对象让你能够跨请求保持参数,在同一个Session实例发出所有请求之间保持cookie。
跨请求保持cookie,如果不用session无法保持统一状态请求
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r= s.get("http://httpbin.org/cookies")
r.text
SSL证书
verify=False)主机证书
verify='/path/to/certfile')可信任的CA证书路径
代理设置
如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求
import requests
http:
proxies = {
"http": "http://10.10.1.10:3128",
"https": "http://10.10.1.10:1080",
}
socks:
proxies = {
'http': 'socks5://user:pass@host:port',
'https': 'socks5://user:pass@host:port'
}
requests.get("http://example.org", proxies=proxies)