使用Scrapy框架中如何避免被Ban

2021-08-09 10:27:48 字數 1724 閱讀 2182

1、禁止cookie(在setting中)

#cookies_enabled = false(修改之前)
cookies_enabled = false(修改之後)

download_delay =3(修改之後)
3、使用ip池(如果在爬蟲過程中你使用同乙個ip進行高頻率的訪問某個**,可能你的ip會被ban,不能進行爬取。這個時候就需要建立乙個ip池,在不同的ip之間來回切換,隨機的使用ip池中的ip)

①在setting中寫乙個ippool放入ip及其埠號

ippool=[,,

]

②在middlewares.py中寫如下程式

導包

import random

#初始化方法

def__init__

(self, ip=''):

self.ip = ip

#主要進行請求處理

defprocess_request

(self, request, spider):

#隨機選擇乙個ip

thisip = random.choice(ippool)

#輸出當前的ip

print('當前使用的ip是:'+thisip['ipaddr'])

request.meta["proxy"] = "http://"+thisip["ipaddr"]

③在setting中添做如下改動

**********_middlewares =
4、使用使用者**池

①建立乙個 useragent池

uapool=[

"******x",

"******x"

]

from picture.settings import uapool

from scrapy.contrib.**********middleware.useragent import useragentmiddleware

class

uamid

(useragentmiddleware):

def__init__

(self, ua = ''):

self.ua = ua

defprocess_request

(self, request, spider):

thisua = random.choice(uapool)

print('當前使用的請求頭是:'+thisua)

request.headers.setdefault("user-agent", thisua)

③修改setting

**********_middlewares =
5、進行分布式進行爬取

# 暫時還沒有研究

python中的Scrapy框架使用

scrapysheel scrapy終端是乙個互動終端,供您在未啟動spider的情況下嘗試及除錯您的爬取 其本意是用來測試提取資料的 不過您可以將其作為正常的python終端,在上面測試任何的python 該終端是用來測試xpath或css表示式,檢視他們的工作方式及從爬取的網頁中提取的資料。在編...

scrapy框架基本使用

進入工程目錄 建立爬蟲檔案 編寫爬蟲檔案 執行工程 allow domains 允許的網域名稱 parse self,response scrapy工程預設是遵守robots協議的,需要在配置檔案中進行操作。基於管道 3.將在爬蟲檔案中解析的資料儲存封裝到item物件中 4.將儲存了解析資料的ite...

Scrapy框架基礎使用

1 流程框架 2 在命令列中輸入scrapy,會有scrapy常見命令引數 在命令中輸入scrapy startproject quote建立乙個叫quote的專案 cd到建立好的專案目錄中,然後執行scrapy genspider quotes quotes.toscrape.com,建立spid...