Scrapy SgmlLinkExtractor игнорирует разрешенные ссылки
Пожалуйста, посмотрите наэтот пример паука в документации Scrapy. Объяснение:
Этот паук начал бы сканировать example.coms домашняя страница, собирающая ссылки на категории и ссылки на элементы, разбирая последние с помощью метода parse_item. Для каждого ответа элемента некоторые данные будут извлечены из HTML с использованием XPath, и элемент будет заполнен им.
Я точно так же скопировал паука, и заменилexample.com» с другим начальным URL.
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from scrapy.item import Item
from stb.items import StbItem
class StbSpider(CrawlSpider):
domain_name = "stb"
start_urls = ['http://www.stblaw.com/bios/MAlpuche.htm']
rules = (Rule(SgmlLinkExtractor(allow=(r'/bios/.\w+\.htm', )), callback='parse', follow=True), )
def parse(self, response):
hxs = HtmlXPathSelector(response)
item = StbItem()
item['JD'] = hxs.select('//td[@class="bodycopysmall"]').re('\d\d\d\d\sJ.D.')
return item
SPIDER = StbSpider()
Но мой паукБВУ» не собирает ссылки с "/ Биос /» как и положено. Он запускает исходный URL, очищаетitem['JD']
и записывает его в файл, а затем выходит.
Почему это такSgmlLinkExtractor
игнорируется?Rule
читается, потому что он ловит синтаксические ошибки внутриRule
линия.
Это ошибка? что-то не так в моем коде? Здесь нет ошибок, кроме множества необработанных ошибок, которые я вижу при каждом запуске.
Было бы неплохо узнать, что я здесь делаю неправильно. Спасибо за любые подсказки. Я неправильно понимаю, чтоSgmlLinkExtractor
должен делать?