0
我已經成功創建了一個蜘蛛檢索域的每個網頁的鏈接。python scrapy嘗試使用參數時無法找到蜘蛛
我想做同樣的事情,但對於我託管的域數多,爲此,我更喜歡使用我的蜘蛛,只是將它添加爲要監視的域的參數。
文檔here解釋說我們應該明確地定義構造函數並在其中添加參數,然後用命令scrapy crawl myspider啓動蜘蛛。
這裏是我的代碼:
class MySpider(BaseSpider):
name= 'spider'
def __init__(self, domain='some_domain.net'):
self.domain = domain
self.allowed_domains = [self.domain]
self.start_urls = [ 'http://'+self.domain ]
def parse(self, response):
hxs = HtmlPathSelector(response)
for url in hxs.select('//a/@href').extract():
if not url.startswith('http://'):
url= URL + url
print url
yield Request(url, callback=self.parse)
然而,發射
scrapy crawl spider -a domain='mydomain.my_extension'
回報:
ERROR: unable to find spider: spider
當我勞克相同的代碼,但沒有明確的構造,我可以」 t用爬行來做這件事,我不得不用這個命令來代替:
scrapy runspider /path/to/spider/spider.py
,我不能使用runspider參數,我得趕緊走相反爬行
爲什麼不能使用scrapy爬行的蜘蛛? 爲什麼Spider的名字永遠不會被scrapy爬行讀取,就像scrapy runpider一樣?如果您運行scrapy 0.14你應該在類級別設置的變量,而不是在實例級別/
非常感謝您的幫助