2016-05-17 2 views
6

Я новичок в scrapy framework, и я видел несколько уроков, используя LinkExtractors и несколько, используя SgmlLinkExtractor. Я попытался найти различия/плюсы для обоих, но результаты не были удовлетворительными.Разница между LinkExtractor и SgmlLinkExtractor

Может ли кто-нибудь сказать мне разницу между обоими? Когда мы должны использовать вышеуказанные экстракторы?

Спасибо!

ответ

9

Проблема, почему вы не можете найти ссылки на то, что SgmlLinkExtractor есть, является то, что он сейчас устарел (связанный changeset). Вы можете найти определение SgmlLinkExtractorhere - внутри документов Scrapy 0.24.

И вы не должны использовать SgmlLinkExtractor больше - Scrapy теперь оставляет только один канал выделения - LxmlLinkExtractor - тот, на который указывает псевдоним LinkExtractor.

+1

Что касается различий, 'SgmlLinkExtractor' основан на [' sgmllib.SGMLParser'] (https://docs.python.org/2/library/sgmllib.html) (модуль 'sgml' устарел с Python 2.6 , и недоступен в Python3), тогда как по умолчанию 'LinkExtractor' реализован поверх' lxml', который несколько быстрее и хорошо поддерживается. –