設置代理IP

設置代理IP

前言大綱

我們設計網路爬蟲時,可能某些網站造訪太頻繁,特別是爬取大量資料時,此時可以使用 time.sleep() 方式處理。

例如在設計交友網站的爬蟲程式時,想要擷取的有好幾百頁,共有幾萬筆未婚女性資料,其中每個頁面有20筆,在使用迴圈爬取每個頁面中,增加下列 time.sleep() 指令,這就是避開伺服器查覺相同頻率爬取資料。

time_sleep(random.randint(3,10))

但是相同 IP 進入網頁太頻繁仍是很有可能遭到網路封鎖,碰上這類情況,我們可以透過代理 IP 。使用此代理 IP 時,可以將我們自己的 IP 隱藏起來,使用代理IP。方法是在 requests.get() 內增加 proxies 參數,在這個參數內,可以使用字典格式的 IP ,細節可以參考下列程式範例 :

範例 pythonProxies-01.py : 使用代理 IP 範例,無法執行。

# pythonProxies-01.py
import requests

proxies = {
  "http": "http://111.231.81.109:3128",         # ip:port
  "https": "https://111.231.81.109:1080",       # ip:port
}

r = requests.get("https://docs.python.org", proxies=proxies)
print(response.url)

執行結果

<class 'requests.models.Response'>
https://www.httpbin.org/get

上述程式範例 pythonProxies-01.py 可能無法執行,必須要在程式第5,6行輸入正確可用的IP。市面上有許多網站有提供免費的代理IP可以使用,https://freeproxylists.net/zh/ : 

繼續往下捲動可以看到更多IP地址與 Port 編號,當然如果使用頻繁建議可以設計爬蟲程式直接爬取上述表單的IP地址與Port編號。

以下是幾個免費的代理IP網站:

範例 pythonProxies-02.py : 使用免費代理 IP 範例。

# pythonProxies-02.py
import requests

proxies = {
  "http": "http://203.83.182.86:8080",         # ip:port
}

r = requests.get("https://docs.python.org", proxies=proxies)
if r.status_code == 200:
    print('代理IP使用成功')

執行結果

代理IP使用成功


參考資料

特色、摘要,Feature、Summary:

關鍵字、標籤,Keyword、Tag:

  • Web-Crawler,Data-Mining,Data-Science,

留言

這個網誌中的熱門文章

Ubuntu 常用指令、分類與簡介

網路設定必要參數IP、netmask(遮罩)、Gateway(閘道)、DNS

iptables的觀念與使用

了解、分析登錄檔 - log

Python 與SQLite 資料庫

Blogger文章排版範本

Pandas 模組

如何撰寫Shell Script

查詢指令或設定 -Linux 線上手冊 - man

網路相關之指令