1、 引入
在学习爬虫之前可以先大致的了解一下HTTP协议~
1 爬虫的基本流程
1.2 简介
简介:Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,Requests它会比urllib更加方便,可以节约我们大量的工作。一句话,requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装
安装方法:pip install requests
开源地址:https://github.com/kennethreitz/requests
中文文档 API:http://docs.python-requests.org/zh_CN/latest/index.html
2、基本语法
requests模块支持的请求:
1 get请求
基本请求
含参数请求
含请求头
含cookies请求
request.session()
2 post请求
data参数
requests.post()用法与requests.get()完全一致,特殊的是requests.post()多了一个data参数,用来存放请求体数据
response=requests.post("http://httpbin.org/post",params={"a":"10"}, data={"name":"peng"})
发送json数据
3 response对象
常见属性
编码问题
下载二进制文件(图片,视频,音频)
解析json数据
Redirection and History
默认情况下,除了 HEAD, Requests 会自动处理所有重定向。可以使用响应对象的 history 方法来追踪重定向。Response.history 是一个 Response 对象的列表,为了完成请求而创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。
另外,还可以通过 allow_redirects 参数禁用重定向处理:
3、 进阶用法
1 proxies代理
如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:
也可以通过本地环境变量 HTTP_PROXY 和 HTTPS_PROXY 来配置代理:
2 私密代理
3 web客户端验证
如果是Web客户端验证,需要添加 auth = (账户名, 密码)
4、 两个栗子
1、模拟GitHub登录,获取登录信息
2、爬取豆瓣电影信息