Scrapy - нет списка страниц, но я знаю URL для каждой страницы элемента - PullRequest
0 голосов
/ 16 мая 2011

Я использую Scrapy для очистки сайта.Страница элемента, которую я хочу очистить, выглядит следующим образом: http://www.somepage.com/itempage/&page=x. Где x - любое число от 1 до 100.Таким образом, у меня есть правило SgmlLinkExractor с функцией обратного вызова, заданной для любой страницы, похожей на эту.

На веб-сайте нет страницы со списком всех элементов, поэтому я хочу как-то тщательно очистить эти URL (от 1 до 100).Этот парень здесь , казалось, имел ту же проблему, но не мог понять ее.

У кого-нибудь есть решение?

Ответы [ 2 ]

6 голосов
/ 27 мая 2011

Вы можете перечислить все известные URL в вашем атрибуте Spider class ' start_urls :

class SomepageSpider(BaseSpider):
    name = 'somepage.com'
    allowed_domains = ['somepage.com']
    start_urls = ['http://www.somepage.com/itempage/&page=%s' % page for page in xrange(1, 101)]

    def parse(self, response):
        # ...
1 голос
/ 27 мая 2011

Если это одноразовая вещь, вы можете создать локальный html-файл file:///c:/somefile.html со всеми ссылками.Начните очистку этого файла и добавьте somepage.com к разрешенным доменам.

В качестве альтернативы, в функции разбора вы можете вернуть новый запрос, который является следующим URL, который будет очищен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...