Соскоб в сети в Stack Overflow с помощью скрапа, но я не могу получить голоса вопроса - PullRequest
0 голосов
/ 07 ноября 2018

Я очищаю переполнение стека, я уже улавливаю заголовок, URL и теги, но не могу поймать голосование по каждому вопросу. Кто-нибудь может мне помочь? Я не так хорош с XPath

def parse_item(self, response):
    questions = response.xpath('//div[@class="question-summary"]')

    for question in questions:
        item = StackItem()
        item['url'] = question.xpath(
            'div[@class="summary"]/h3/a[@class="question-hyperlink"]/@href').extract()[0]
        item['title'] = question.xpath(
            'div[@class="summary"]/h3/a[@class="question-hyperlink"]/text()').extract()[0]
        item['tags'] = question.xpath(
            'div[@class="summary"]/div[2]/a[@class="post-tag"]/text()').extract()
        item['votes'] = question.xpath(
            '/div[1]/div[1]/div[1]/div[1]/span/strong/textContent()').extract()[0]

        yield item

Я чищу страницу: https://stackoverflow.com/questions?page=2&sort=newest

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Если вы хотите использовать xpath

item['votes'] = question.xpath(".//div[@class='votes']//strong/text()").extract_first()

обратите внимание на точку с префиксом .//div xpath Проверьте документ Scrapy

0 голосов
/ 07 ноября 2018

А как же

item['votes'] = question.css('.vote-count-post > strong::text').extract()[0]

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