Scrapy возвращает пустой массив из XPath

1

Я пытаюсь собрать данные о спортсмене с этой веб-страницы: https://www.athletic.net/TrackAndField/Athlete.aspx?AID=7844096#!/L4. Мне удалось собрать имя спортсмена, но мне сложно собрать их школьное имя, используя тот же метод. Я знаю, что название школы содержится как текст внутри ссылки внутри блока, но возвращает только пустой массив.

Вот мой код:

import scrapy

class AthletesSpider(scrapy.Spider):
    name = 'athletes'
    allowed_domains = ['athletic.net']
    start_urls = ['https://www.athletic.net/TrackAndField/Athlete.aspx?AID=7844096#!/L0']

    def parse(self, response):
        yield {
            'athlete_name' : response.xpath("//h2/text()").extract_first(),
            'school_name' : response.xpath("//h1/a/text()").extract_first()
        }

Я что-то пропустил?

Теги:
python-3.x
xpath
scrapy
web-crawler

1 ответ

2

Добавить запятую в словаре

import scrapy

class AthletesSpider(scrapy.Spider):
    name = 'athletes'
    allowed_domains = ['athletic.net']
    start_urls = ['https://www.athletic.net/TrackAndField/Athlete.aspx?AID=7844096#!/L0']

    def parse(self, response):
        yield {
            'athlete_name' : response.xpath("//h2/text()").extract_first(), <--here
            'school_name' : response.xpath("//h1/a/text()").extract_first()
        }
  • 0
    Боже мой, спасибо, что это было глупо. Но вторая строка по-прежнему возвращает пустой массив вместо названия школы - чего-то еще не хватает?
  • 1
    Одна вещь, которую вы можете попробовать, - это (если у вас есть Chrome) проверить страницу, найти элемент, щелкнуть правой кнопкой мыши и нажать «Копировать xpath». Обычно это то, что я делаю, чтобы легко идентифицировать элементы.
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню