python爬虫学习入门3 urllib 添加代理 proxy

进阶操作3 添加Proxy 代理

在之前学习了如何添加headers 来伪装浏览器,下面简单讲一下如何通过创建"处理器" 来添加Proxy代理, 回顾之前的第一章,我们用的urlopen()方法来直接请求网页,但是urlopen()这个函数中并没有添加代理的方法,因此需要另辟蹊径。

添加handler 的方法添加Proxy

爬虫的四个步骤还是那样,

第一步 添加要爬取网页的url 地址

第二步 发送数据请求

第三步 分析数据

第四部保存

# 还是引用urllib.request 库文件

import urllib.request

# 第一步 添加url 地址

url = "http://www.baidu.com"

# 第二步 使用代码发送请求

	# 2.1 创建请求对象
	# 在这里不能简单的创建Request 对象,因为urllib.request.Request 中创建的请求对象只包含url, 和header
	'''
这里是urllib.request.Request 的定义 可以看出 里边有个data, 和headers.等信息 但是并没有包含我们需要的Proxy 代理信息
class Request:

    def __init__(self, url, data=None, headers={},
                 origin_req_host=None, unverifiable=False,
                 method=None):
'''

# 因此我们需要用另一种方式创建一个对象。---handler

# 3. 创建handler 并添加代理 可以将其理解为也是一个请求的人, 简称请求对象, handler 是这个人解决问题的方法。

	# 3.1 创建Proxy 代理
Proxy = {
	# 在这里我们还是用字典的方式对其进行存储,但是并不意味着可能下边的函数可能接受这个字典,有时候可能需要对其进行转义
	'http': 'http://192.168.121.101:8080', # 前边是协议,后边是代理的ip地址和端口号, 可以添加多个
}

# 创建可添加代理的handler 并传递参数Proxy
proxy_handler = urllib.request.ProxyHandler(Proxy)

# 创建好handler 之后 也就是创建好解决问题的方法之后,要把这个方法交给另一个对象, 创建opener 

opener = urllib.request.build_opener(proxy_handler)

#  创建好opener 之后就相当于一个request,请求对象,我们通过这个opener 来打开网页, 获取相应

response = opener.open(url)
# 到这里就回到了以前的步骤

data = response.read().decode('utf-8')

print(data)




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值