В следующем коде используется scrapy + scrapy-splash + Python. Я пытаюсь извлечь предстоящие матчи (в том числе: названия команд, название турнира, время начала) с этого сайта: https://www.hltv.org/matches
Мой код в функции обратного вызова 'parse':
match_days = response.xpath("//div[@class = 'upcoming-matches']//div[@class = 'match-day']")
for match in match_days.xpath("./a"):
print(match.extract())
# tournament_name = match.xpath(".//td[@class='event']//span[@class='event-name']/text()").extract_first()
# team1_name = match.xpath(".//td[@class='team-cell'][1]//div[@class='team']/text()").extract_first()
Предполагается, что я получу содержимое для каждого элемента "‹ a >" (т.е. должно выглядеть примерно так, например:
<a href="/matches/2318355/dkiss-vs-psychoactive-prowince-winner-winner-of-the-future-2017" class="a-reset block upcoming-match standard-box" data-zonedgrouping-entry-unix="1514028600000">
<table class="table">
<tbody>
<tr>
<td class="time">
<div class="time" data-time-format="HH:mm" data-unix="1514028600000">12:30</div>
</td>
<td class="team-cell">
<div class="line-align">
<img alt="DKISS" src="https://static.hltv.org/images/team/logo/8657" class="logo" title="DKISS">
<div class="team">DKISS</div>
</div>
</td>
<td class="vs">vs</td>
<td class="team-cell">
<div class="team">PSYCHOACTIVE/proWince winner</div>
</td>
<td class="event"><img alt="Winner of the Future 2017" src="https://static.hltv.org/images/eventLogos/3464.png" class="event-logo" title="Winner of the Future 2017"><span class="event-name">Winner of the Future 2017</span></td>
<td class="star-cell">
<div class="map-text">bo3</div>
</td>
</tr>
</tbody>
</table>
</a>
Но я получаю это только для каждого "‹ a >":
<a href="/matches/2318355/dkiss-vs-psychoactive-prowince-winner-winner-of-the-future-2017" class="a-reset block upcoming-match standard-box" data-zonedgrouping-entry-unix="1514028600000">
</a>
Я пробовал это в оболочке scrapy и тот же результат.
Я пробовал инструменты Chrome Developer и вижу все содержимое для каждого "‹ a >" в свойстве innerHTML.
Я не думаю, что проблема связана с «‹ tbody >», так как я понял, что в некоторых случаях он опускается и добавляется веб-браузерами, потому что, когда я распечатываю html-содержимое возвращаемой страницы из «ответа» "‹ tbody >" есть (кстати, я использую lua-скрипт через scrapy-splash, чтобы сделать POST-запрос к URL-адресу и получить html-страницу)
Кто-нибудь знает, почему это происходит? Я потратил последние пару дней на это без ответа, и у меня нет никаких идей о том, что еще проверить, чтобы понять, почему это происходит, когда этого не должно быть.
Спасибо.