一、代码1——付费IP的两种使用方式
import urllib.request
#付费的代理发送
#1.用户名密码(带着)
#2.通过验证的处理器发送
def monney_proxy_use():
#第一种付费方式发送付费的IP地址
#1.代理IP
# monney_proxy = {"http":"username:pwd@192.168.12.11:8080"}
# #2.代理的处理器
# proxy_handler = urllib.request.ProxyHandler(monney_proxy)
# #3.通过处理器创建openner
# openner = urllib.request.build_opener(proxy_handler)
# #4.open发送请求
# openner.open( "http://www.baidu.com")
#第二种付费方式发送付费的IP地址
user_name= "aaa"
pwd = "1233223"
proxy_money = "192.168.12.11:8080"
#2.创建密码管理器,添加用户名和密码
password_manager = urllib.request.HTTPPasswordMgrWithDefaultRealm()
#uri定位 等级uri>url
#url 资源定位符
password_manager.add_password(None,proxy_money,user_name,pwd)#def add_password(self, realm, uri, user, passwd);realm取None;用uri传url
#3.创建可以验证IP的ProxyBasicAuthHandler处理器
handler_auth_proxy = urllib.request.ProxyBasicAuthHandler(password_manager)#创建Handler,传入密码管理器,返回一个handler
#4.创建openner
openner_auth = urllib.request.build_opener(handler_auth_proxy)
#5.发送请求
response = openner_auth.open("http://www.baidu.com ")
print(response.read())
monney_proxy_use()
二、代码2——模拟admin账户访问内网爬取数据
(创建HTTPBasicAuthHandler处理器)
import urllib.request
#抓取自己公司的数据,利用admin账户(权限更多)模拟登陆自己公司的网站。
def auth_neiwang():
#1.管理员用户名、密码
user = "admin"
pwd = "11111111"
nei_url = "http://192.22.2.2.2"
#2.创建密码管理器
pwd_manager = urllib.request.HTTPPasswordMgrWithDefaultRealm()
#向密码管理器添加参数
pwd_manager.add_password(None,nei_url,user,pwd)
#3.创建认证Handler处理器
auth_handler = urllib.request.HTTPBasicAuthHandler(pwd_manager)
#4.创建Openner
openner_auth = urllib.request.build_opener(auth_handler)
#5.发送请求,读取数据
response = openner_auth.open("http://www.baidu.com" )
print(response.read())
auth_neiwang()