一、禁止cookie
有的**會通過cookie來識別使用者,我們可以禁用cookie使對方**無法識別出我們的對話資訊,達到避免被禁止。
在scrapy的專案中的settings.py 檔案中找到**並修改如下:
# disable cookies (enabled by default)
cookies_enabled = false
有的**會通過我們對**的爬取頻率來分析,如果頻率過快則爬取會被禁止。我們可以通過控制爬取時間間隔來避免禁止。
修改setting.py 中的**如下:
# configure a delay for requests for the same website (default: 0)
# see
# see also autothrottle settings and docs
download_delay = 0.8
0.8代表設定的時間間隔,表示0.8秒,可以根據自己情況進行修改。
三、使用ip池
有的**會對使用者的ip進行檢測,如果在短時間內發現同乙個ip對**進行多次訪問,**會對ip進行封禁。
和之前介紹的**伺服器一樣,我們可以將多個**伺服器的ip組成乙個ip池,每次爬取**時重ip池中隨機選擇ip進行爬取。
1、通過 找到**ip;
2、在settings.py中新增ip池:
#ip池
ippool = [,,
,,,,
]
編輯middlewares.py:
新增乙個ippools類:
#隨機選擇乙個ip
thisip = random.choice(ippool)
print("當前使用ip為:"+thisip["ipaddr"])
#將對應的ip實際新增為具體的**,用該ip進行爬取
request.meta["proxy"]="http://"+thisip["ipaddr"]在settings.py 檔案中進行設定:
# enable or disable ********** middlewares
# see
**********_middlewares =
注釋:
1、在settings.py 中新增:
uapool=[
"mozilla/5.0 (windows nt 6.1; wow64; rv:48.0) gecko/20100101 firefox/48.0",
]
2、在middlewares.py 檔案中新增uamid類:
class uamid(useragentmiddleware):
def __init__(self, ua=""):
self.ua = ua
def process_request(self, request, spider):
thisua = random.choice(uapool)
print("當前使用的user-agent是:" + thisua)
request.headers.setdefault('user-agent', thisua)
3、在settings.py 檔案中進行設定:
**********_middlewares =
scrapy避免被禁止
在scrapy 專案中,主要可以通過以下方法來避免被禁止 1 禁止cookies 3 使用ip池 4 使用使用者 5 其他方法,比如進行分布式爬取等 這個就不介紹了 1.禁止cookies 如果我們要禁止使用cookies,可以在對應scrapy爬蟲專案中的settings.py檔案進行相應的設定。...
Scrapy爬蟲專案中避免被禁止爬蟲的幾種方法
現在 的安全性越來越高,並會通過分析使用者的行為以及相關資訊來判斷該使用者是否是自動爬蟲並會將爬蟲行為禁止。不同的 判斷依據也不同,有的根據ip 有的根據使用者資訊 有的根據訪問頻率等。因此,本文將具有針對性地介紹幾種方法應對不同的情況。有的 會通過使用者的cookie資訊堆使用者進行識別和分析,如...
mysql被禁用 mysql遠端訪問被禁止
遠端連線mysql伺服器的資料庫,錯誤 是1130,error 1130 host is not allowed to connect to this mysql server 猜想是無法給遠端連線的使用者許可權問題。這樣子操作mysql庫,即可解決。在本機登入mysql後,更改 mysql 資料庫...