1、公有代理ip
示例1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 1、代理开关,表示是否启用代理
proxyswitch = False
# 2、根据是否开启代理开关,选择创建handler
if proxyswitch:
# 构建一个Handler处理器对象,参数是一个字典类型,包括代理类型和代理服务器IP+PROT
handler = urllib2.ProxyHandler({"http" : "124.88.67.54:80"})
else:
# 构建了一个没有代理的处理器对象
handler = urllib2.ProxyHandler({})
# 3、创建opener
opener = urllib2.build_opener(handler)
# 4、构建了一个全局的opener,之后所有的请求都可以用urlopen()方式去发送,也附带Handler的功能
urllib2.install_opener(opener)
# 5、构造请求参数
request = urllib2.Request("http://www.baidu.com/")
# 6、所有的请求都可以用urlopen()方式去发送,就是使用之前的install_opener(opener)中的opener
response = urllib2.urlopen(request)
# 7、读取结果数据
#print response.read().decode("gbk")
print response.read()
示例2
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 代理开关,表示是否启用代理
proxyswitch = False
# 根据是否开启代理开关,选择创建handler
if proxyswitch:
# 构建一个Handler处理器对象,参数是一个字典类型,包括代理类型和代理服务器IP+PROT
handler = urllib2.ProxyHandler({"http" : "124.88.67.54:80"})
else:
# 构建了一个没有代理的处理器对象
handler = urllib2.ProxyHandler({})
# 创建opener
opener = urllib2.build_opener(handler)
# 构造请求参数
request = urllib2.Request("http://www.baidu.com/")
# 使用opner发送请求
response = opner.open(request)
#print response.read().decode("gbk")
print response.read()
2、私有代理ip
示例1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 1.
authproxy_handler = urllib2.ProxyHandler({
"http" : "mr_mao_hacker:sffqry9r@114.215.104.49:16816"
})
# 2.
opener = urllib2.build_opener(authproxy_handler)
# 3.
request = urllib2.Request("http://www.baidu.com/")
# 4.
response = opener.open(request)
# 5.
print response.read()
示例2
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
import os
# 1. 获取系统环境变量的授权代理的账户和密码
proxyuser = os.environ.get("proxyuser")
proxypasswd = os.environ.get("proxypasswd")
# 2. 授权的代理账户密码拼接
authproxy_handler = urllib2.ProxyHandler({
"http" : proxyuser+":"+proxypasswd+"@114.215.104.49:16816"
})
# 3. 构建一个自定义的opener
opener = urllib2.build_opener(authproxy_handler)
# 4. 构建请求
request = urllib2.Request("http://www.baidu.com/")
# 5. 获取响应
response = opener.open(request)
# 6. 打印内容
print response.read()
3、urllib2.HTTPBasicAuthHandler()
- 1、build_opener
- 2、httpauth handler
- 3、proxyauth handler
- 4、build_opener 创建 request,就会附带如上上面两种handler处理
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
username = "test"
password = "123456"
webserver = "192.168.21.52"
# 1、构建一个密码管理对象,可以用来保存和HTTP请求相关的授权账户信息
passwordMgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# 2、添加授权账户信息
# -1)第一个参数realm如果没有指定就写None
# -2)后三个分别:站点IP、账户、密码
passwordMgr.add_password(None, webserver, username, password)
# 3、handler1: Auth
httpauth_handler = urllib2.HTTPBasicAuthHandler(passwordMgr)
# 4、handler2: Proxy
proxyauth_handler = urllib2.ProxyBasicAuthHandler(passwordMgr)
# 5、构建自定义opener = handler1 + handler2
opener = urllib2.build_opener(
httpauth_handler,
proxyauth_handler
)
# 6、
#urllib2.install_opener(opener)
# 7、创建请求
request = urllib2.Request("http://192.168.21.52/")
# 8、用opener创建请求,附带Auth和Proxy
response = opener.open(request)
# 9、没有授权验证信息
#response = urllib2.urlopen(request)
# 10、读取结果数据
print response.read()
网友评论