Python Scrapy, если строка не None - PullRequest
       4

Python Scrapy, если строка не None

0 голосов
/ 27 октября 2018

Я использую библиотеку Python и получаю возвращаемое значение для ответа xpath на определенных итерациях, однако другие, которые я получаю, возвращаются: "(None,)" значение. Я только хочу дать значение, если оно не "(None,)".

Я пробовал следующее:

if option1 not None:

но он все равно печатает "(None,)" для вывода.

Любое направление будет оценено.

ОБНОВЛЕНИЕ, ЗДЕСЬ МОЙ ПОЛНЫЙ КОД:

import scrapy

class StreakSpider(scrapy.Spider):
    name = 'streak_spider'
    start_urls = ['http://streak.espn.com/en/?date=20181026']
def parse(self, response):
    GAME_SELECTOR = '.matchup-container'

    for game in response.css(GAME_SELECTOR):
        QUESTION_SELECTOR = '.gamequestion strong ::text'
        TIME_SELECTOR = '.startTime ::text'
        SPORT_SELECTOR = '.sport-description ::text'
        WINNER1_SELECTOR = '.winner ::text'
        OPTION1_SELECTOR = './/span/strong/a/text()'
        question = game.css(QUESTION_SELECTOR).extract_first(),
        time = game.css(TIME_SELECTOR).extract_first(),
        sport = game.css(SPORT_SELECTOR).extract_first(),
        winner1 = game.css(WINNER1_SELECTOR).extract_first(),
        option1 = game.xpath(OPTION1_SELECTOR).extract_first(),

        #if option1 != '"(None,)"':
        #if option1 is not None:
        if option1:
            yield {
                    'option1': option1,
            }

1 Ответ

0 голосов
/ 28 октября 2018

(None,) - это tuple

Вы должны использовать .extract(), поэтому я предлагаю использовать .extract_first(), чтобы получить только первые результаты

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