Я последовал совет из этих двух постов, я также пытаюсь создать общий Scrapy паук:передачи аргументов Scrapy
How to pass a user defined argument in scrapy spider
Creating a generic scrapy spider
Но я получаю сообщение об ошибке, что у переменная, которую я должен передавать, поскольку аргумент не определен. Я что-то пропустил в моем init метод?
Код:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from data.items import DataItem
class companySpider(BaseSpider):
name = "woz"
def __init__(self, domains=""):
'''
domains is a string
'''
self.domains = domains
deny_domains = [""]
start_urls = [domains]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('/html')
items = []
for site in sites:
item = DataItem()
item['text'] = site.select('text()').extract()
items.append(item)
return items
Вот моя командной строки:
scrapy crawl woz -a domains="http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
А вот ошибка:
NameError: name 'domains' is not defined
Я забыл ссылаться на переменном в start_urls, как self.domains, но теперь ошибка говорит, что сам не определена. У меня есть ответ на мой вопрос, но я должен подождать 4 часа, прежде чем я смогу опубликовать. Продолжение следует... – jstaker7