Python 爬虫教程 3 - 使用 requests
来源:互联网 发布:c罗进球数据 编辑:程序博客网 时间:2024/04/25 23:27
上一篇文章讲了什么是 HTTP 协议,而这次我将告诉你如何使用 Python 通过 HTTP 来获取互联网上的资源。
什么是 requests
简单的来讲 requests 是一个简单易用的 HTTP 客户端程序,由 Python 社区大牛 Kenneth 发起。所以 requests 到底是干什么的呢?往简单了想,你可以把它当作一个程序使用的浏览器(当然我们所使用的浏览器很多功能它都没有,比如不能自动载入图片,不能自动运行 js 等等),但是作为一个程序客户端来说它足够通用,在爬虫里我们使用它来获取在互联网上的各种资源。
requests 的使用十分简单,比如你想要获得 http://www.baidu.com
所对应的资源,只需要简单的调用 get 方法,可以看到返回的是一个 html 文档字符串,你可以将这个巨大的字符串拷贝到单独的文件中,再用浏览器打开,就可以得到一个类似百度首页的页面了。
>>> import requests>>> res = requests.get('http://www.baidu.com')>>> print res.text<!DOCTYPE html><!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8>...</div> </body> </html>
一些简单的示例
requests 是一个第三方库,所以需要用 pip 进行安装。在使用 requests 之前,需要先导入模块
>>> import requests
对应于 HTTP 的不同动词,可以直接调用模块里同名函数发送 HTTP 请求。
>>> get_res = requests.get('http://www.baidu.com/') # GET 方法>>> post_res = requests.post('http://www.baidu.com/') # POST 方法
get
和 post
应该是我们最常用的两个函数了,也是 requests 库的核心,除了 URL 这个参数之外,它们还接受其他参数,下面介绍其中最常用的两个:
params,字典类型,通过这个参数传递需要附带的参数,使用 GET 方法的话也就是我们常在 URL 问号后面看到的那些参数。
>>> params = {'wd': 'hello'}>>> res = requests.get('http://www.baidu.com/', params=params)
headers,字典类型,同样的我们可以通过 headers 参数对请求的首部进行定制。
>>> headers = {'accept': 'text/html', 'user-agent': 'Safari/10.0.1'}>>> res = requests.get('http://www.baidu.com/', headers=headers)
那要如何获得服务器返回的 HTTP 响应呢,每一个请求函数都会返回一个响应对象,可以通过这个响应对象获取 HTTP 响应的一切信息。
比如可以获得返回的报文内容
>>> res = requests.get('http://www.baidu.com/')>>> res.text # 字符串形式数据>>> res.json # 以 json 格式对数据进行解码>>> res.content # 二进制数据
获得状态码,判断请求执行的状态
>>> res. status_code200
获得响应头,以供进一步使用,你的结果应该和我类似
>>> res. headers{'Content-Encoding': 'gzip', 'Transfer-Encoding': 'chunked', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Server': 'bfe/1.0.8.18', 'Last-Modified': 'Mon, 23 Jan 2017 13:27:44 GMT', 'Connection': 'Keep-Alive', 'Pragma': 'no-cache', 'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Date': 'Fri, 10 Feb 2017 06:36:54 GMT', 'Content-Type': 'text/html'}
接下来是什么
除了上面所说的内容,requests 还有许多更多更强大的功能,包括 HTTP 认证,文件上传,HTTPS 加密等,你可以在官网获得全面而详细的资料。
参考资料
1. requests 中文官网 http://cn.python-requests.org/zh_CN/latest/
- Python 爬虫教程 3 - 使用 requests
- python requests 小爬虫
- Python爬虫之requests
- Python requests爬虫实例
- python爬虫---requests
- python爬虫-Requests库
- Python爬虫 --requests库
- python爬虫之requests
- Python Requests库简明使用教程
- Python Requests库简明使用教程
- python-requests库的基本使用教程
- 使用requests+beautifulsoup模块实现python网络爬虫功能
- Python从零开始写爬虫(一)requests库使用
- 【Python爬虫系列】使用requests爬取图片
- 【python爬虫01】使用requests库模拟登录知乎
- 使用requests+beautifulsoup模块实现python网络爬虫功能
- Python 爬虫实战(一):使用 requests 和 BeautifulSoup
- 【爬虫】Python的Requests模块
- RocketMQ入门
- 【如何快速的开发一个完整的iOS直播app】(搭建Socket即时通讯服务器)
- libjpeg库支持解码内存中的jpeg数据
- 今日头条iOS客户端启动速度优化
- Google自己的下拉刷新组件SwipeRefreshLayout
- Python 爬虫教程 3 - 使用 requests
- 苹果开发者账号需要了解的一些事情
- 几款消息中间的调研
- React(三):理解JSX和组件
- linux下alias命令详解
- 分布式服务框架之服务化最佳实践
- UIMotionEffect和Home页背景视差效果
- SpringBoot 入门教程:集成mybatis,redis
- go 用slice模拟vector功能