Запрос на терапию не анализируется - PullRequest
0 голосов
/ 10 марта 2019

Все мои запросы не анализируются. Это успешно проанализировано, хотя. Вот мой код:

# -*- coding: utf-8 -*-
import scrapy

from boardgamegeek.items import BoardgamegeekItem

class TwoPlayersSpider(scrapy.Spider):
    name = 'two_players'
    start_urls = [
        'https://www.boardgamegeek.com/xmlapi/geeklist/48970',
        'https://www.boardgamegeek.com/xmlapi/geeklist/48986'
    ]

    def parse(self, response):
        bg_ids = ",".join(response.xpath("//item/@objectid").extract())
        yield scrapy.Request("https://www.boardgamegeek.com/xmlapi/boardgame/{}".format(bg_ids), self.parse_bg)

    def parse(self, response):
        for bg in response.xpath("//boardgame").extract():
            minplaytime = int(bg.xpath(".//minplaytime/text()").extract_first())
            maxplaytime = int(bg.xpath(".//maxplaytime/text()").extract_first())
            maxplayers = int(bg.xpath(".//maxplayers/text()").extract_first())

            if (minplaytime <= 40 or maxplaytime <= 60) and maxplayers >= 3:
                i = BoardgamegeekItem()
                i["link"] = "http://www.boardgamegeek.com/boardgame/{}".format(bg.xpath(".//objectid").extract_first())
                i["title"] = bg.xpath(".//name/text()").extract_first()
                i["minplayers"] = int(bg.xpath(".//minplayers/text()").extract_first())
                i["maxplayers"] = maxplayers
                i["minplaytime"] = minplaytime
                i["maxplaytime"] = maxplaytime

                yield i

1 Ответ

0 голосов
/ 10 марта 2019

Нашли это!Это произошло потому, что у меня было две функции разбора с одинаковым именем!Я забыл обновить имя парсера до parse_bg

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