Создание универсального паука Scrapy

Мой вопрос действительно заключается в том, как сделать то же самое, что и предыдущий вопрос, но в Scrapy 0.14.

Использование одного паука Scrapy для нескольких веб-сайтов.

По сути, у меня есть графический интерфейс, который принимает такие параметры, как домен, ключевые слова, имена тегов и т. д., и я хочу создать общий паук для сканирования этих доменов по этим ключевым словам в этих тегах. Я читал противоречивые вещи, используя более старые версии scrapy, либо переопределяя класс диспетчера пауков, либо динамически создавая паука. Какой метод предпочтительнее и как реализовать и вызвать правильное решение? Заранее спасибо.

Вот код, который я хочу сделать универсальным. Он также использует BeautifulSoup. Я соединил его, так что, надеюсь, не удалил ничего важного для его понимания.

class MySpider(CrawlSpider):

name = 'MySpider'
allowed_domains = ['somedomain.com', 'sub.somedomain.com']
start_urls = ['http://www.somedomain.com']

rules = (
    Rule(SgmlLinkExtractor(allow=('/pages/', ), deny=('', ))),

    Rule(SgmlLinkExtractor(allow=('/2012/03/')), callback='parse_item'),
)

def parse_item(self, response):
    contentTags = []

    soup = BeautifulSoup(response.body)

    contentTags = soup.findAll('p', itemprop="myProp")

    for contentTag in contentTags:
        matchedResult = re.search('Keyword1|Keyword2', contentTag.text)
        if matchedResult:
            print('URL Found: ' + response.url)

    pass

16
задан Community 23 May 2017 в 12:07
поделиться