2015-07-26 4 views
0

Я использую scrapy, чтобы попытаться получить данные url во вложенном классе. Я пробовал следовать учебным пособиям и знакомым вопросам, но я немного отстаю в своей, казалось бы, простой задаче.Использование Scrapy для извлечения вложенных данных

страница я пытаюсь скрести это один: http://www.leasingcar.dk/privatleasing

Для каждого транспортного средства на странице я хочу, чтобы получить XPATH Thats приводит к «данных nice_url» текст. Поэтому первым результатом должен быть «/ privatleasing/Citro% c3% abn-Berlingo/eHDi-90-Seduction-E6G». Но я получаю пустой набор данных каждый раз. Я пробовал изменить xpath без всякого взгляда.

Мой код выглядит следующим образом:

from scrapy.spiders import Spider 
from stack.items import StackItem 
from scrapy.selector import Selector 


class Spider(Spider): 
name = "leasingcar" 
allowed_domains = ["http://www.leasingcar.dk"] 
start_urls = ["http://www.leasingcar.dk/privatleasing",] 

def parse(self, response): 

    hxs = Selector(response) 
    print hxs.xpath('//div[@class="data-nice_url"]/text()').extract() 

Заранее спасибо

ответ

0

страница очень «динамический» и использует несколько запросов XHR для различных конечных точек API для построения себя. Рассмотрев эти запросы в инструментах разработчика браузера, я бы сказал, что вам будет нелегко имитировать их в вашем коде Scrapy, и было бы гораздо легче подойти к проблеме с помощью selenium - средства автоматизации браузера. Вы также можете использовать "headless" PhantomJS browser или virtual display.

В любом случае, убедитесь, что вы не нарушаете Условия использования веб-сайта, и вы являетесь good web-scraping citizen.

+0

привет! Не могли бы вы немного помочь? http://stackoverflow.com/questions/31630771/scrapy-linkextractor-duplicating – yukclam9

+0

Спасибо за ваш ответ @alecxe. Я уже пробовал смотреть на API, но когда я отправляю требуемый URL-адрес в почтовом запросе, я получаю отказ в доступе. Не могли бы вы объяснить, почему сайт, являющийся динамичным, мешает мне достичь моей цели? Я могу видеть данные, которые я хочу в html, поэтому я предполагаю, что они должны быть видимы для лечения? – Frank

+0

@Frank - это точка, scrapy - это не браузер и «видит» только начальный HTML, который не содержит требуемых данных, он динамически загружается с помощью дополнительных запросов и javascript, выполняемых в браузере. Вот почему я предлагаю использовать подход на высоком уровне и автоматизировать настоящий браузер, который будет выполнять всю работу, построить страницу, а затем вы получите результаты. – alecxe

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