как разобрать несколько страниц с помощью скрапа - PullRequest
1 голос
/ 20 января 2012

Я получаю сообщение об ошибке: введенный синтаксис для

1.add_xpath('tagLine', '//p[@class="tagline"]/text()')

и я не могу понять, почему это дает мне такую ​​ошибку, поскольку, насколько я могу судить, это тот же синтаксис, что и у всех других методов 1.add_xpath (). Мой другой вопрос, как я могу запросить другие страницы. в основном я прохожу одну большую страницу и просматриваю ее по каждой ссылке на странице, затем, как только это будет сделано со страницей, я хочу, чтобы она переходила к следующей (кнопка) следующей большой страницы, но я не знаю как это сделать.

   def parse(self, response):
    hxs = HtmlXPathSelector(response)
    for url in hxs.select('//a[@class="title"]/@href').extract():
        yield Request(url, callback=self.description_page)
    for url_2 in hxs.select('//a[@class="POINTER"]/@href').extract():
        yield Request(url_2, callback=self.description_page)

def description_page(self, response):
    l = XPathItemLoader(item=TvspiderItem(), response=response)
    l.add_xpath('title', '//div[@class="m show_head"]/h1/text()')
    1.add_xpath('tagLine', '//p[@class="tagline"]/text()')
    1.add_xpath('description', '//div[@class="description"]/span')
    1.add_xpath('rating', '//div[@class="score"]/text()')
    1.add_xpath('imageSrc', '//div[@class="image_bg"]/img/@src')
    return l.load_item()

любая помощь по этому вопросу будет принята с благодарностью. Я все еще немного новичок, когда дело доходит до питона и скрапа.

1 Ответ

1 голос
/ 20 января 2012
def description_page(self, response):
    l = XPathItemLoader(item=TvspiderItem(), response=response)
    l.add_xpath('title', '//div[@class="m show_head"]/h1/text()')
    1.add_xpath('tagLine', '//p[@class="tagline"]/text()')
    1.add_xpath('description', '//div[@class="description"]/span')
    1.add_xpath('rating', '//div[@class="score"]/text()')
    1.add_xpath('imageSrc', '//div[@class="image_bg"]/img/@src')
    return l.load_item()

У вас есть цифра 1 вместо имени переменной l.

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