PythonScript_002_设置代理进行爬取

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import urllib.request
import os # os是电脑环境、sys是Python环境
'''
构建代理-进行请求
特点:免费的不稳定
Python 3.7.0
'''
# 代理开关,表示是否用代理
proxyswitch = True

# 获取系统环境变量的授权代理的账户和密码,作用:可以防止信息泄露
# proxyuser = os.environ.get("proxyuser") # 这里没有设置
# proxyuser = os.environ.get("proxypasswd") # 这里没有设置

# 构建一个Handler处理器对象,参数是一个字典类型,包括代理类型和代理服务器IP + PROT
httporoxy_handler = urllib.request.ProxyHandler({"http" : "101.251.216.103:80"}) # 免费的
# httporoxy_handler = urllib.request.ProxyHandler({"http": "mr_mao_hacker:[email protected]:16816"}) # 收费的

# 构建一个没有代理的处理器对象
nullproxy_handler = urllib.request.ProxyHandler({})

# 构建自定义的opener
# 调用build_opener()方法构建一个自定义的opener对象,参数是构建的处理器对象
if proxyswitch:
    opener = urllib.request.build_opener(httporoxy_handler)
else:
    opener = urllib.request.build_opener(nullproxy_handler)

# 构建了一个全局的opener,之后所有的请求都可以用urlopen()方式去发送,也附带Handler的功能
# 注:全局代理适合设置一个代理之后不再更换代理,而需要一直更换代理的就不能设置全局代理
urllib.request.install_opener(opener)

# 构建请求
request = urllib.request.Request("http://www.baidu.com/")

# 获取响应
reponse = urllib.request.urlopen(request)

# 打印内容
print(reponse.read().decode("utf-8"))



猜你喜欢

转载自blog.csdn.net/weixin_40022980/article/details/84768900