天天看點

ProxyHeadler處理器(代理設定)

爬蟲為什麼要設定代理?

很多網站會檢測某一段時間某個IP的通路次數(通過流量統計,系統日志等),如果通路次數多的不像正常人,它會禁止這個IP的通路。是以我們可以設定一些代理伺服器,每隔一段時間換一個代理,就算IP被禁止,依然可以換個IP繼續爬取。

代理的原理:

在請求目的伺服器之前,先請求代理伺服器,然後讓代理伺服器去請求目的伺服器,代理伺服器從目的伺服器拿到資料後,轉發給我們的代碼

代碼中使用代理的步驟:

  1. 使用ProxyHandler傳入代理,建構一個handler
  2. 使用handler建構一個opener
  3. 使用open()發送請求
from urllib import request
import ssl


def main():
    # 不使用代理
    # 傳回通路的ip
    url = 'http://httpbin.org/ip'
    res = request.urlopen(url)
    print("不使用代理傳回ip:\n", res.read().decode('utf-8'))

    # 使用代理
    # 1.使用ProxyHandler傳入代理,建構一個handler
    handler = request.ProxyHandler({'http': "111.72.25.191:9999"})
    # 2.使用handler建構一個opener
    opener = request.build_opener(handler)
    # 3.使用open()發送請求
    res = opener.open(url)
    print("使用代理傳回ip:\n",res.read().decode('utf-8'))


if __name__ == '__main__':
    main()      
常用的代理:
  • ​​西刺代理​​ : http://www.xicidaili.com/
  • ​​快代理​​:http://www.kuaidaili.com/
  • ​​代理雲​​:http://www.dailiyun.com/

繼續閱讀