Python Requests 基础入门
首先,Python标准库中的urllib2模块提供了你所需要的大多数HTTP功能,但是它的API不友好。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务,所以学习reuqests模块,比较简洁好用(以后慢慢会学习scapy,更强大的库),安装就不用说了
1导入模块
>>>importrequests
2直观感受一下发送请求的简洁
>>>r=requests.get('yoururl')
>>>r=requests.post('yoururl')
#putdeleteheadoptions方法也是这种用法
3为url传递参数
>>>url_params={'key':'value'}#字典传递参数,如果值为None的键不会被添加到url中
>>>r=requests.get('yoururl',params=url_params)
>>>print(r.url)
yoururl?key=value
4响应的内容
>>>r.encoding#获取当前的编码
>>>r.encoding='utf-8'#设置编码
>>>r.text#以encoding解析返回内容
>>>r.content#以字节形式(二进制)返回
>>>r.json()#以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
5定制头和coookie信息
>>>header={'User-Agent':'Mozilla/5.0(WindowsNT10.0)AppleWebKit/537.36(KHTML,likeGecko)Chrome/38.0.2125.122Safari/537.36SE2.XMetaSr1.0'}
>>>cookie={'key':'value'}
>>>r=requests.get/post('yoururl',headers=header,cookies=cookie)
6发送post数据请求
>>>send={'key':'value'}
>>>r=requests.post('yoururl',data=send)#如果你传递一个string而不是一个dict,那么数据会被直接发布出去,这个也可以上传文件
7响应状态码
>>>r.status_code#如果不是200,可以使用r.raise_for_status()抛出异常
8响应
>>>r.headers#返回字典类型,头信息
#r.requests.headers返回发送到服务器的头信息
>>>r.cookies#返回cookie
>>>r.history#返回重定向信息,当然可以在请求是加上allow_redirects=false阻止重定向
9超时
>>>r=requests.get('url',timeout=1)#设置秒数超时,仅对于连接有效
10会话对象,让你能够跨请求保持某些参数
>>>s=requests.Session()
>>>s.auth=('auth','passwd')
>>>s.headers={'key':'value'}
>>>r=s.get('url')
>>>r1=s.get('url1')
11代理
>>>proxies={'http':'ip1','https':'ip2'}
>>>requests.get('url',proxies=proxies)
毛票票推荐阅读:
PythonRequests安装与简单运用