Выявление проблемы при получении href из Google Scholar - PullRequest
1 голос
/ 03 июля 2019

Возникли проблемы с очисткой ссылок и названий статей от Google scholar.Я не уверен, что проблема в моем коде или xpath, который я использую для получения данных - или, возможно, оба?

Я уже провел последние несколько часов, пытаясь отладить / проконсультироваться с другими запросами стекового потока, но безуспешно.

import scrapy
from scrapyproj.items import ScrapyProjItem

class scholarScrape(scrapy.Spider):

    name = "scholarScraper"
    allowed_domains = "scholar.google.com"
    start_urls=["https://scholar.google.com/scholar?hl=en&oe=ASCII&as_sdt=0%2C44&q=rare+disease+discovery&btnG="]

    def parse(self,response):
        item = ScrapyProjItem()
        item['hyperlink'] = item.xpath("//h3[class=gs_rt]/a/@href").extract()
        item['name'] = item.xpath("//div[@class='gs_rt']/h3").extract()
        yield item

Сообщения об ошибках, которые я получаю, говорят: «AttributeError: xpath», поэтому я считаю, что проблема связана с путем, который я использую, чтобы попытаться получить данные, но я также мог бы бытьошибаюсь?

1 Ответ

0 голосов
/ 04 июля 2019

Добавление моего комментария в качестве ответа, так как это решило проблему:

Проблема связана с scrapyproj.items.ScrapyProjItem объектами: у них нет атрибута xpath.Это официальный курс по терапии?Я думаю, что вы хотели вызвать xpath на response:

item['hyperlink'] = response.xpath("//h3[class=gs_rt]/a/@href").extract()
item['name'] = response.xpath("//div[@class='gs_rt']/h3").extract()

Кроме того, первое выражение пути может нуждаться в наборе кавычек вокруг значения атрибута "gs_rt":

item['hyperlink'] = response.xpath("//h3[class='gs_rt']/a/@href").extract()

Кроме того, выражения XPath в порядке.

...