requests包用于获取网站的内容,使用HTTP协议,基于urllib3实现。其官方中文文档为:Requests: HTTP for Humans
requests的基本使用方法很简单,这里记录一些最常用的方法,完整的介绍见其官方文档,以下介绍基于Python 3.5。
使用requests首先需要导入它:
import requests
发送请求
最基本的方法是GET请求:
url = 'http://www.zju.edu.cn/'``r = requests.get(url)
返回的r是一个Response
类对象,包含所有返回数据,可以从这个Response中提取所需的信息。
除了get()
外,常用的请求还有post()
,用法完全相同。除此之外requests也支持其它各种请求方法,具体参见其文档说明。
可通过r.url()
获取请求的URL。
读取响应内容
使用Response的text属性即可:
r = requests.get(url)``print(r.text)
text属性是针对相应内容是文本(如HTML等)的情况下使用,如果返回的数据是二进制数据(如图片等),则通过content属性来读取二进制比特流:
r = requests.get(url)``f = open('file', 'wb')``f.write(r.content)
如果返回的数据是json,requests中自带了一个解析器,可以直接使用json()函数进行解析,返回的是一个字典:
url = 'http://ip.taobao.com/service/getIpInfo.php'``payload = {'ip': '23.91.98.188'}``r = requests.get(url, params = payload)``print(r.json()['data']['country_id'])
上面这个例子演示了淘宝的IP查询服务。
附加查询参数
可以构造类似 http://www.baidu.com/s?ie=utf-8&wd=Python 这样的查询URL,其中附加在?之后的部分就是查询参数,可以手动构造这样一个字符串,不过requests中提供了更优雅的解决方案,使用一个字典作为params参数即可:
url = 'http://www.baidu.com/s'``payload = {'wd': 'Python', 'ie': 'utf-8'}``r = requests.get(url, params = payload)
附加表单
与附加查询参数类似,在POST请求中,可以附加表单信息,这一般用于实现登录或提交信息等,使用一个字典作为data参数即可:
payload = {'username':'username', 'password':'passwd'}``r = requests.post(url, data = payload)
读取与设置响应数据的编码
一般情况下requests均能从响应头部获得正确的编码,不过若头部没有相应信息,则需要手动设置,不然可能会出错。使用Response的encoding属性即可:
r = requests.get()``f.write(r.text, encoding = r.encoding)``r.encoding = 'gb2312'``r.encdoing = 'utf-8'
使用代理
使用一个字典作为proxies参数即可,下面这段代码演示了使用ShadowSocks作为代理的方法:
proxies = {` `'http' : 'socks5://127.0.0.1:1080',` `'https': 'socks5://127.0.0.1:1080'``}``r = requests.get(url, proxies=proxies)
获取响应状态码
使用Response的status_code属性即可:
r = requests.get(url)``print(r.status_code)
自定义请求头部
传递一个字典作为headers参数即可:
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}``r = requests.get(url, headers = header)
会话
会话可以跨请求保持某些参数,它也会在同一个Session实例发出的所有请求之间保持cookies。使用如下方法新建一个会话:
s = requests.Session()
会话对象s具有主要的Requests API的所有方法。会话一般用于连续发起一系列请求的时候使用,它会自动处理cookies的问题,十分方便。
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/55b5802aae9685e9f630c85a8042b6e3.png)