2 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
嘗試為蜘蛛類型添加單獨(dú)的參數(shù)。您可以通過調(diào)用來設(shè)置它scrapy crawl myspider -a spider_type=second。檢查此代碼示例:
import scrapy
import pkgutil
class StockSpider(scrapy.Spider):
name = "myspider"
def start_requests(self):
if not hasattr(self, 'spider_type'):
self.logger.error('No spider_type specified')
return
data = pkgutil.get_data("tutorial", "resources/webs.txt")
data = data.decode()
for url in data.split("\r\n"):
if self.spider_type == 'first':
url += 'first'
if self.spider_type == 'second':
url += 'second'
yield scrapy.Request(url)
def parse(self, response):
pass
而且您始終可以創(chuàng)建基主類,然后從它繼承,僅重載一個(gè)變量(添加到 url)和名稱(用于單獨(dú)調(diào)用)。

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
spider_type 導(dǎo)致錯(cuò)誤
NameError: name 'spider_type' is not defined.
它是蜘蛛類中的 self.spider_type。
import scrapy
import pkgutil
class StockSpider(scrapy.Spider):
name = "myspider"
def start_requests(self):
if not hasattr(self, 'spider_type'):
self.logger.error('No spider_type specified')
return
data = pkgutil.get_data("tutorial", "resources/webs.txt")
data = data.decode()
for url in data.split("\r\n"):
if self.spider_type == 'first':
url += 'first'
if self.spider_type == 'second':
url += 'second'
yield scrapy.Request(url)
def parse(self, response):
pass
使其更加嚴(yán)格和準(zhǔn)確。
scrapy crawl myspider -a spider_type='second'
添加回答
舉報(bào)