requests 模块是对 urllib 的封装,它是一种伪装成浏览器对网页服务器发动申请从而取得响应的爬虫形式。不同于后面说到的下载整个网页的模式,requests 模块能够增加申请头、参数信息对具体的网页接口发动申请,是一种部分模式的爬虫技术。
requests 模块通过向服务器发送 http 申请获取数据,同时反对 get、post 的协定申请办法。在爬虫过程中,能够通过查问参数、申请头等信息的管制取得咱们须要的响应的信息,同时 post 办法更是反对上传等形式获取等精准的爬虫数据。
1、GET 办法:不增加任何申请参数
1# -*- coding: UTF-8 -*-
2import requests
3
4# 定义申请的 url 地址
5url = "http://httpbin.org"
6
7# 应用 GET 办法发动申请
8response = requests.get(url=url)
9
10# 打印响应状态,200 示意胜利
11print "响应状态",response.status_code
12# 打印网页文本
13print "网页文本:",response.text
2、GET 办法:增加申请参数
1# -*- coding: UTF-8 -*-
2import requests
3
4# 定义申请的 url 接口 (须要申请的接口), 假如接口 http://httpbin.org/get
5url = "http://httpbin.org/get"
6
7# 定义申请头部信息 (字典类型)
8headers = {
9 "Accept": "*/*",
10 "Accept-Encoding": "gzip",
11 "User-Agent": "",
12}
13
14# 定义申请参数信息 (字典类型)
15params = {'name': 'Python 集中营', 'type': 'python'}
16
17# 应用 GET 办法发动申请 (退出头部信息、退出参数信息)
18response = requests.get(url=url,headers=headers,params=params)
19
20# 打印响应状态,200 示意胜利
21print "响应状态",response.status_code
22# 打印响应信息
23print "响应信息:",response.content
3、POST 办法:提交一般数据
1# -*- coding: UTF-8 -*-
2import requests
3
4# 定义申请的 url 接口 (须要申请的接口), 假如接口 http://httpbin.org/post
5url = "http://httpbin.org/post"
6
7# 定义申请头部信息 (字典类型)
8headers = {
9 "Accept": "*/*",
10 "Accept-Encoding": "gzip",
11 "User-Agent": "",
12 # 定义申请数据格式、json
13 "Content-Type": "application/json",
14}
15
16# 定义申请参数信息 (字典类型)
17params = {'name': u'Python 集中营', 'type': 'python'}
18
19# 应用 POST 办法发动申请 (退出头部信息、退出参数信息)
20# 设置这里的数据参数 data = params
21response = requests.post(url=url,headers=headers,data=params)
22
23# 打印响应状态,200 示意胜利
24print "响应状态",response.status_code
25# 打印响应信息
26print "响应信息:",response.content
4、POST 办法:提交文件数据
1# 文件参数 (字典类型)
2files = {
3 'file': (
4 # 文件名称
5 'python.png',
6 # 文件门路、关上文件
7 open('C:/python.png', 'rb'),
8 # 文件类型、图片
9 'image/png'),
10}
11
12# 应用 POST 办法发动申请 (退出头部信息、退出参数信息)
13# 设置这里的数据参数 data = params(定义好的参数)
14# 设置文件参数 files = files(定义好的文件)
15response = requests.post(url=url, headers=headers, data=params, files=files)
16# 打印响应状态,200 示意胜利
17print "响应状态", response.status_code
18# 打印响应信息
19print "响应信息:", response.content
更多精彩返回微信公众号【Python 集中营】,专一于 python 技术栈,材料获取、交换社区、干货分享,期待你的退出~