反爬蟲之搭建IP代理池 聽說你又被封 ip 了,你要學會偽裝好自己,這次說說偽裝你的頭部。可惜加了header請求頭,加了cookie 還是被限制爬取了。這時就得祭出IP代理池!!! 下麵就是requests使用ip代理例子 這樣就可以使用你定義的代理地址去訪問網站了 但IP代理哪裡來阿?有兩種方式 ...
反爬蟲之搭建IP代理池
聽說你又被封 ip 了,你要學會偽裝好自己,這次說說偽裝你的頭部。可惜加了header請求頭,加了cookie 還是被限制爬取了。這時就得祭出IP代理池!!!
下麵就是requests使用ip代理例子
response = requests.get(url,proxies=proxies)
這樣就可以使用你定義的代理地址去訪問網站了
但IP代理哪裡來阿?有兩種方式
- 付費API介面(IP量多,穩定)
- 免費IP代理 (IP量少,不穩定,但免費呀,基礎爬蟲已夠)
這時我們可以搞個IP代理池,思路就是通過python爬取大量免費代理IP,然後進行存活驗證,再提供介面使用。
其實這種事早就有人寫了,github上有很多優秀的項目,這裡分享兩個。(問題是我不會寫,Python從入門到放棄)
這裡我用第一個項目吧,畢竟Star 6k多
這時先安裝一下redis(步驟省略,記得勾上添加環境變數和放行防火牆)
以上說明我們已經成功安裝了redis
下麵我們將redis安裝成windows服務,自啟動
進到redis目錄下,然後執行redis-server --service-install redis.windows-service.conf
註意:不要找錯了 通常為redis.windows-service.conf 而不是redis.windows.conf 後者是以非系統服務方式啟動程式使用的配置文件。
這時還得去看服務有沒有開啟
修改資料庫密碼等配置項,一般測試環境都無需加密碼,這裡還是加一下吧
打開Redis服務配置文件redis.windows-service.conf,找到含有requirepass字樣的地方,追加一行,輸入requirepass 12345 並保存!!!
重啟一下服務(剛纔是開著的,現在先關後開)
Tips!!!
啟動臨時服務: redis-server.exe redis.windows.conf
客戶端調用: redis-cli.exe -h 127.0.0.1 -p 6379
卸載服務: redis-server.exe --service-uninstall
打開RedisClient 管理工具 點擊 伺服器 > 添加
配置proxy_pool項目,首先在項目目錄下安裝依賴
配置Config/setting.py 其中如果有更改IP、埠、密碼的在圈圈裡面修改並保存!(代理池訪問網址埠也可以在文件最底下改)
上面配置啟動後,預設代理池訪問地址為 http://127.0.0.1:5010
如果你的依賴已經安全完成並且具備運行條件,可以直接在Run下運行main.py。
如果運行成功你應該看到有4個main.py進程,你也可以分別運行他們,依次到Api下啟動ProxyApi.py,Schedule下啟動ProxyRefreshSchedule.py和ProxyValidSchedule.py即可。
把項目跑起來!!!
在RedisClient 工具下查看數據
API使用
大致搭建過程就在這裡啦,不過免費的IP代理還是差很多,生產環境需求最好還是花錢購買API介面,質量好!!!