2015-11-18 3 views
0

Я использую scrapy и пытаюсь создать правило limit_xpaths, поэтому искатель всегда будет идти только к следующему изображению.scrapy - попытка получить «следующий» url

Я начинаю с этим изображением: https://www.flickr.com/photos/safaripartners/4838428819/in/photolist-qtC2e5-5iA4ZQ-8nydjx-zf1rvk-wvDaHE-8nBnhu-baArRv-36WzbG-2hLUaa-v6Mw1k-d33z5A-8nBniU-6jTfkT-6W6Sbu-5CtFsA-6RZZ5K-36WYuS-5DatmT-d5Qo1A-nMktKL-9wF1aF-hfuXhF-eLaQn5-5tR4Ri-prLcsi

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

Я пробовал:

name = "FlickerSpider" 
allowed_domains = ["flickr.com"] 
start_urls = [ 
"https://www.flickr.com/photos/indymcduff/6632326011/in/photolist-9uQnYG-9SnqTY-qjXTHY-onEUN5-5d72ri-tgMKAY-8qaRQL-on6ZLu-bnMg2B-8AVUgV-b75pst/" 
] 
rules = (
    #crawl to next image 
    Rule(SgmlLinkExtractor(allow=(r'photos'),restrict_xpaths=('//class[@data="navigate-target navigate-next")]')) ,callback='parse_item', follow=True), 
) 

, но я не получаю никаких запросов. У кого-нибудь есть предложение, какое правило я должен использовать? Спасибо!

+0

Вы пробовали ........ –

ответ

0

У вас есть синтаксическая ошибка в выражении restrict_xpaths. Попробуйте

restrict_xpaths=('//a[@class="navigate-target navigate-next"]')

Это всегда стоит попробовать ваш XPath, используя scrapy shell или с помощью $ х в Firebug для Firefox. Когда в правиле есть такая проблема xpath, она просто терпит неудачу.

Update

я дал вам этот XPath

restrict_xpaths=('//a[@class="navigate-target navigate-next"]/@href')

, который отлично работает с помощью команды $ х в Firebug. Как вы сказали, это не Работа с scrapy оболочки. Похоже, что эта часть страницы не является частью простого HTML, а создается во время выполнения. Если вы не найдете альтернативный URL-адрес, вам может понадобиться использовать нечто вроде Selenium, которое отображает страницу в стандартном браузере, включая динамический контент. Затем Scrapy может анализировать этот HTML-код, включая ссылку, которую вы используете. Посмотрите на это question.

+0

Вы правы, но это только потому, что я пробовал некоторые вещи. В любом случае - он все еще не дает никакого запроса. не мог получить его, используя раковину scrapy. – Tom

Смежные вопросы