IPProxyPool
爬蟲(chóng)的問(wèn)題上IP問(wèn)題算是比較重要的,解決這個(gè)問(wèn)題又不想花錢買IP唯有通過(guò)技術(shù)這條道路,雖然現(xiàn)在網(wǎng)絡(luò)爬蟲(chóng)有一定的規(guī)范,但是希望提高速度而又不打破規(guī)則的前提下,個(gè)人認(rèn)為變換IP是一個(gè)比較能接受的辦法。
避免重復(fù)造輪,充分利用Github上的資源很重要。其實(shí)這個(gè)項(xiàng)目很早就已經(jīng)有了,但是覺(jué)得很有用,有必要記錄下來(lái)。將項(xiàng)目Git clone 到本地
-
問(wèn)題一:使用的是Python3還是Python2
- 個(gè)人建議使用python3,畢竟python2是要淘汰了。
-
問(wèn)題二:下載好需要用的包、軟件、設(shè)置環(huán)境變量
- 包:pip install requests chardet web.py sqlalchemy gevent
- 軟件:sqlite,路徑添加到環(huán)境變量
-
問(wèn)題三:出現(xiàn)特殊情況
-
問(wèn)題四:在cmd運(yùn)行IPPorxy.py出錯(cuò),需要修改web.py包下的utils.py源代碼
- 將D:\Application\Compile\Anaconda3\Lib\site-packages\web\utils.py文件中的yield next(seq)換成
def take(seq, n):
for i in range(n):
yield next(seq)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
def take(seq, n):
for i in range(n):
try:
yield next(seq)
except StopIteration:
return
# yield next(seq)
最后,項(xiàng)目主頁(yè)本來(lái)就很詳盡,這里整理了個(gè)人容易出現(xiàn)的問(wèn)題。