Мой вопрос действительно заключается в том, как сделать то же самое, что и предыдущий вопрос, но в 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