1蚪腐、公有代理ip
示例1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 1、代理開關(guān)税朴,表示是否啟用代理
proxyswitch = False
# 2回季、根據(jù)是否開啟代理開關(guān),選擇創(chuàng)建handler
if proxyswitch:
# 構(gòu)建一個Handler處理器對象正林,參數(shù)是一個字典類型泡一,包括代理類型和代理服務(wù)器IP+PROT
handler = urllib2.ProxyHandler({"http" : "124.88.67.54:80"})
else:
# 構(gòu)建了一個沒有代理的處理器對象
handler = urllib2.ProxyHandler({})
# 3、創(chuàng)建opener
opener = urllib2.build_opener(handler)
# 4觅廓、構(gòu)建了一個全局的opener鼻忠,之后所有的請求都可以用urlopen()方式去發(fā)送,也附帶Handler的功能
urllib2.install_opener(opener)
# 5杈绸、構(gòu)造請求參數(shù)
request = urllib2.Request("http://www.baidu.com/")
# 6帖蔓、所有的請求都可以用urlopen()方式去發(fā)送,就是使用之前的install_opener(opener)中的opener
response = urllib2.urlopen(request)
# 7瞳脓、讀取結(jié)果數(shù)據(jù)
#print response.read().decode("gbk")
print response.read()
示例2
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
# 代理開關(guān)塑娇,表示是否啟用代理
proxyswitch = False
# 根據(jù)是否開啟代理開關(guān),選擇創(chuàng)建handler
if proxyswitch:
# 構(gòu)建一個Handler處理器對象劫侧,參數(shù)是一個字典類型埋酬,包括代理類型和代理服務(wù)器IP+PROT
handler = urllib2.ProxyHandler({"http" : "124.88.67.54:80"})
else:
# 構(gòu)建了一個沒有代理的處理器對象
handler = urllib2.ProxyHandler({})
# 創(chuàng)建opener
opener = urllib2.build_opener(handler)
# 構(gòu)造請求參數(shù)
request = urllib2.Request("http://www.baidu.com/")
# 使用opner發(fā)送請求
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. 獲取系統(tǒng)環(huán)境變量的授權(quán)代理的賬戶和密碼
proxyuser = os.environ.get("proxyuser")
proxypasswd = os.environ.get("proxypasswd")
# 2. 授權(quán)的代理賬戶密碼拼接
authproxy_handler = urllib2.ProxyHandler({
"http" : proxyuser+":"+proxypasswd+"@114.215.104.49:16816"
})
# 3. 構(gòu)建一個自定義的opener
opener = urllib2.build_opener(authproxy_handler)
# 4. 構(gòu)建請求
request = urllib2.Request("http://www.baidu.com/")
# 5. 獲取響應(yīng)
response = opener.open(request)
# 6. 打印內(nèi)容
print response.read()
3烧栋、urllib2.HTTPBasicAuthHandler()
- 1写妥、build_opener
- 2、httpauth handler
- 3劲弦、proxyauth handler
- 4耳标、build_opener 創(chuàng)建 request,就會附帶如上上面兩種handler處理
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import urllib2
username = "test"
password = "123456"
webserver = "192.168.21.52"
# 1邑跪、構(gòu)建一個密碼管理對象次坡,可以用來保存和HTTP請求相關(guān)的授權(quán)賬戶信息
passwordMgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
# 2、添加授權(quán)賬戶信息
# -1)第一個參數(shù)realm如果沒有指定就寫None
# -2)后三個分別:站點(diǎn)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症脂、構(gòu)建自定義opener = handler1 + handler2
opener = urllib2.build_opener(
httpauth_handler,
proxyauth_handler
)
# 6、
#urllib2.install_opener(opener)
# 7、創(chuàng)建請求
request = urllib2.Request("http://192.168.21.52/")
# 8诱篷、用opener創(chuàng)建請求壶唤,附帶Auth和Proxy
response = opener.open(request)
# 9、沒有授權(quán)驗(yàn)證信息
#response = urllib2.urlopen(request)
# 10棕所、讀取結(jié)果數(shù)據(jù)
print response.read()
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者