1、 引入

在学习爬虫之前可以先大致的了解一下HTTP协议~


1  爬虫的基本流程

python 爬虫需要socket 通信_重定向

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模块支持的请求:

python 爬虫需要socket 通信_HTTP_02

1  get请求

基本请求

python 爬虫需要socket 通信_爬虫_03

含参数请求

python 爬虫需要socket 通信_HTTP_04

含请求头

python 爬虫需要socket 通信_HTTP_05

含cookies请求

python 爬虫需要socket 通信_HTTP_06

request.session()

python 爬虫需要socket 通信_HTTP_07

2  post请求

data参数

requests.post()用法与requests.get()完全一致,特殊的是requests.post()多了一个data参数,用来存放请求体数据
response=requests.post("http://httpbin.org/post",params={"a":"10"}, data={"name":"peng"})

发送json数据

python 爬虫需要socket 通信_HTTP_08

3  response对象

常见属性

python 爬虫需要socket 通信_HTTP_09

编码问题

python 爬虫需要socket 通信_爬虫_10

下载二进制文件(图片,视频,音频)

python 爬虫需要socket 通信_重定向_11

解析json数据

python 爬虫需要socket 通信_重定向_12

 Redirection and History

默认情况下,除了 HEAD, Requests 会自动处理所有重定向。可以使用响应对象的 history 方法来追踪重定向。Response.history 是一个 Response 对象的列表,为了完成请求而创建了这些对象。这个对象列表按照从最老到最近的请求进行排序。

python 爬虫需要socket 通信_爬虫_13

另外,还可以通过 allow_redirects 参数禁用重定向处理:

python 爬虫需要socket 通信_爬虫_14

3、 进阶用法

1  proxies代理

如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:

python 爬虫需要socket 通信_爬虫_15

也可以通过本地环境变量 HTTP_PROXY 和 HTTPS_PROXY 来配置代理:

python 爬虫需要socket 通信_爬虫_16

2  私密代理

python 爬虫需要socket 通信_HTTP_17

3  web客户端验证

如果是Web客户端验证,需要添加 auth = (账户名, 密码)

python 爬虫需要socket 通信_HTTP_18

4、 两个栗子

1、模拟GitHub登录,获取登录信息

python 爬虫需要socket 通信_重定向_19

2、爬取豆瓣电影信息

python 爬虫需要socket 通信_HTTP_20