開源項(xiàng)目IPProxys的使用
前幾天看了一下github上们豌,IPProxys開源項(xiàng)目快100star了,看來大家對這個項(xiàng)目還是比較感興趣的。最近一直沒更新文章罩阵,主要是忙實(shí)驗(yàn)室的工作和寫一個之前給大家提到新的開源項(xiàng)目朵纷,我將它命名為PowerProxy,寫的過程中遇到了很多問題永脓,算是一個不錯的學(xué)習(xí)經(jīng)歷袍辞,對sock5協(xié)議,windows內(nèi)核有了一定的理解常摧。開源的日期還沒確定搅吁,需要將一些關(guān)鍵問題解決,大家敬請期待落午。(我的新書《Python爬蟲開發(fā)與項(xiàng)目實(shí)戰(zhàn)》發(fā)布了谎懦,大家在這里可以看到樣章)
看到大家對IPProxys項(xiàng)目挺感興趣,下面就介紹一下它的使用方式溃斋。
IPProxys使用
項(xiàng)目依賴
ubuntu,debian下
- 安裝sqlite數(shù)據(jù)庫(一般系統(tǒng)內(nèi)置):
apt-get install sqlite3
- 安裝requests庫:
pip install requests
- 安裝lxml:
apt-get install python-lxml
- 安裝gevent庫:
pip install gevent
(有時候使用的gevent版本過低會出現(xiàn)自動退出情況界拦,請使用pip install gevent --upgrade更新)
windows下
- 下載sqlite,路徑添加到環(huán)境變量
- 安裝requests庫:
pip install requests
- 安裝lxml:
pip install lxml或者下載lxml windows版
- 安裝gevent庫:
pip install gevent
(有時候使用的gevent版本過低會出現(xiàn)自動退出情況,請使用pip install gevent --upgrade更新)
如何使用
將項(xiàng)目目錄clone到當(dāng)前文件夾
$ git clone https://github.com/qiyeboy/IPProxys
切換工程目錄
$ cd IPProxys
運(yùn)行腳本
python IPProxys.py
API 使用方法
模式
GET /
參數(shù)
Name | Type | Description |
---|---|---|
types | int | 0: 高匿代理, 1 透明 |
protocol | int | 0: http, 1 https |
count | int | 數(shù)量 |
country | str | 國家 |
area | str | 地區(qū) |
例子
IPProxys默認(rèn)端口為8000
如果是在本機(jī)上測試:
1.獲取5個ip地址在中國的高匿代理:http://127.0.0.1:8000/?types=0&count=5&country=中國
2.響應(yīng)為JSON格式梗劫,按照響應(yīng)速度由高到低享甸,返回數(shù)據(jù):
[{"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
1.添加對Python3.x的支持
2.可自主選擇添加squid反向代理服務(wù)器,簡化爬蟲配置
3.重構(gòu)HTTP API接口
4.增加更多代理網(wǎng)站和數(shù)據(jù)庫適配