前幾天看了一下github上,IPProxys開源項目(https://github.com/qiyeboy/IPProxys)快100star了,看來大家對這個項目還是比較感興趣的。最近一直沒更新文章,主要是忙實驗室的工作和寫一個之前給大家提到新的開源項目,我將它命名為PowerProxy,寫的過程中遇到了很多問題,算是一個不錯的學習經歷,對sock5協議,windows內核有了一定的理解。開源的日期還沒確定,需要將一些關鍵問題解決,大家敬請期待。
看到大家對IPProxys項目挺感興趣,下面就介紹一下它的使用方式。(我的新書《Python爬蟲開發與項目實戰》出版了,大家可以看一下樣章)
IPProxys使用
項目依賴
ubuntu,debian下
-
安裝sqlite數據庫: apt-get install sqlite sqlite3
-
安裝requests庫: pip install requests
-
安裝lxml: apt-get install python-lxml
windows下
-
下載sqlite,路徑添加到環境變量
-
安裝requests庫: pip install requests
-
安裝lxml: pip install lxml或者下載lxml windows版
如何使用
-
將項目目錄clone到當前文件夾
$ git clone
-
切換工程目錄
$ cd IPProxys
-
運行腳本
python IPProxys.py
API 使用方法
模式
GET /
參數
例子
IPProxys默認端口為8000
如果是在本機上測試:
-
獲取5個ip地址在中國的高匿代理:http://127.0.0.1:8000/?types=0&count=5&country=中國
-
響應為JSON格式,按照響應速度由高到低,返回數據:
[{"ip": "220.160.22.115", "port": 80}, {"ip": "183.129.151.130", "port": 80}, {"ip": "59.52.243.88", "port": 80}, {"ip": "112.228.35.24", "port": 8888}, {"ip": "106.75.176.4", "port": 80}]
示例代碼:
import requests import json r = requests.get('http://127.0.0.1:8000/?types=0&count=5&country=中國') ip_ports = json.loads(r.text) print ip_ports ip = ip_ports[0]['ip'] port = ip_ports[0]['port'] proxies={ 'http':'http://%s:%s'%(ip,port), 'https':'http://%s:%s'%(ip,port) } r = requests.get('http://ip.chinaz.com/',proxies=proxies) r.encoding='utf-8' print r.text
TODO
-
可自主選擇添加squid反向代理服務器,簡化爬蟲配置
-
重構HTTP API接口
-
增加更多代理網站和數據庫適配