认识爬虫:如何使用 requests 模块模拟浏览器请求爬取网页信息?

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 技术栈,资料获取、交流社区、干货分享,期待你的加入~

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python 集中营

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值