標籤:odi hand 不同 lis imp open handle url 最好
ProxyHandler處理器(代理設定)
使用代理IP,這是爬蟲/反爬蟲的第二大招,通常也是最好用的。
很多網站會檢測某一段時間某個IP的訪問次數(通過流量統計,系統日誌等),如果訪問次數多的不像正常人,它會禁止這個IP的訪問。
所以我們可以設定一些Proxy 伺服器,每隔一段時間換一個代理,就算IP被禁止,依然可以換個IP繼續爬取。
#_*_ coding: utf-8 _*_‘‘‘Created on 2018年7月13日@author: sss功能:使用代理‘‘‘import urllib.requestimport randomproxy_list = [ {"http" : "124.88.67.81:80"}, {"http" : "124.88.67.81:80"}, {"http" : "124.88.67.81:80"}, {"http" : "124.88.67.81:80"}, {"http" : "124.88.67.81:80"}]proxy = random.choice(proxy_list)#構建兩個代理Handler,一個有代理Ip,一個沒有代理ip# httpProxy_handler = urllib.request.ProxyHandler({‘http‘: ‘124.193.85.88:8080‘})httpProxy_handler = urllib.request.ProxyHandler(proxy) #每次隨機一個代理httpProxy_handler = urllib.request.ProxyHandler({}) #就算五ip也要放一個空的字典proxySwitch = True #定義一個代理開關# proxySwitch = False #定義一個代理開關#使用代理Handler對象,建立自訂的opener對象#根據代理開關是否開啟,使用不同的代理模式if proxySwitch: opener = urllib.request.build_opener(httpProxy_handler)else: opener = urllib.request.build_opener(httpProxy_handler)request = urllib.request.Request(‘http://www.baidu.com/‘)# 1.如果這麼寫,只有使用opener.open()發送請求時,才能使用自訂的代理,而使用urlopen()則不是使用自訂的代理response = opener.open(request)# 2.如果這樣寫,就是將opener應用到全域,之後所有的,不管是opener.open()還是urlopen()發送請求都是使用自訂代理# urllib.request.install_opener(opener)# respense = urllib.request.urlopen(request)print(response.read())print(‘finish!‘)
- 西刺免費代理IP
- 快代理免費代理
- Proxy360代理
- 全網代理IP
9-python 的ProxyHandler處理器(代理設定)