""
PrroHandler 代理設置:我們正常爬取網頁的時候,往往爬取的數據流量會很大,而且都是通過一個ip地址去請求的,
這樣的話,就很容易被目標網站識別成爬蟲程序,而封掉我們的ip地址,這樣我們就再也取不到數據了。
而網絡代理剛好可以解決這個問題,因為在請求的時候,我們首先是由自己的ip將請求發送給代理服務器,然後代理
服務器上會有成千上萬個ip地址幫我們去請求數據,再將數據返回給我們,這樣的話目標網站就再也封不掉我們的ip了
"""
# 目標:請求一個 URL 的時候使用 代理服務器去訪問
# ========== 1、先不使用代理看看是什麼樣子的 ==============
# 1、導入相關的庫
from urllib import request
# 2、先演示一下當前沒有使用代理服務器的時候,我們去訪問目標的ip是哪一個
# "http://httpbin.org/ip" 這個 URL 的作用呢,是它可以將你當前訪問的ip地址給你返回來,讓你方便查看
url = "http://httpbin.org/ip"
# 3、向上面這個 URL 去發送請求,並獲取相應信息
response = request.urlopen(url)
# 4、打印一下結果,看當前我們沒有用代理時 我們的ip地址是什麼
# 返回結果是這個:b'{\n "origin": "36.102.4.100"\n}\n'
print(response.read())
# =============== 2、看看使用代理後是什麼樣子的 =================
【純個人手打,替老師傳道,不求多大成就但願 能幫到大家,在閒暇的時間裡為大家共享一些工作經驗和各種技術資源文章,希望幫助大家共同進步 也希望我的發佈對你有所幫助,我的發佈裡有更多類似的文章可以查閱,喜歡的請點關注,謝謝。你們的關注是我不停發佈的最大動力在我發佈裡好多類似這樣的文章,請盡情閱覽】
# 1、導入相關庫
from urllib import request
# 2、定義請求的目標 URL
url = "http://httpbin.org/ip"
# 3、使用 ProxyHandler 構建一個對象,備用
# 代理字典語法為:request.ProxyHandler({"協議":"代理服務器的ip:代理服務器的端口號"
handler = request.ProxyHandler({"http": "118.190.149.36:8080"})
# 4、使用上面創建的 handler 構建一個 opener ,留著下面發請求的時候用
opener = request.build_opener(handler)
# 5、使用 opener.open() 函數去向 URL 發送請求,這樣,上面的代理服務器我們就算是添加進來了
response = opener.open(url)
# 6、打印響應結果,看我們返回的結果是不是我們上面設置的代理服務器的ip,如果是則正確
print(response.read()) # 返回結果為:b'{\n "origin": "118.190.149.36"\n}\n'
注意事項:1、上面的 http://httpbin.org/ip :這個URL是專門供測試使用的一個組織開放的公共測試URL,你也可以用,但是如果換成了別的 URL 那麼返回的就不是 ip了
2、開發環境:Python3.6.5 IDE : Pycharm 2018
操作系統:windows 10x64
3、發文依然使用截圖加源代碼形式上傳,一是圖片方便看,二是源代碼方便粘貼復
用
閱讀更多 陽光男孩GW 的文章