Невозможно очистить одну и ту же часть страницы, с той лишь разницей, что div и span - PullRequest
0 голосов
/ 19 октября 2018

В настоящее время я пытаюсь научиться очищать, поэтому я пытаюсь очистить футбол для статистики игроков ФИФА.Сейчас я работаю над этой ссылкой Гэри Линекера (например).Когда я пытаюсь почистить его статистику (например, ускорение).Он работает только с числом, а не с фактическим текстом.

Эти два работают вместе и образуют список со статистикой.

stats = doc.xpath('//*[@class="stat_val"]/text()')

<div class="stat_val">90</div>

Однако эти два ничего не создают, просто пустой список,

statNames = doc.xpath('//span[@class="ig-stat-name-tooltip tooltipstered"]/text()')

<span class="ig-stat-name-tooltip tooltipstered">Acceleration</span>

Оба находятся в одной группе, так сказать.Это полный код:

<div class=" row_sep sub_stat">
    <div class="stat_holder_sub  left_stat_name" style="display: inline-block;">
        <span class="ig-stat-name-tooltip tooltipstered">Acceleration</span>
    </div>
    <div id="sub-acceleration-val-0" class="stat_val  acceleration-val-0 stat_text_dark_green" style="display: inline-block;">
        <div class="stat_diff" style=" display: inline-block;"></div>
        <div class="stat_diff_cards" style=" display: none;"></div>
        <div class="stat_val">90</div>
    </div>
</div>

Какая разница?Не должны ли оба работать так?

1 Ответ

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

Если вы опустите tooltipstered в xpath, например, в следующем коде, вы получите результаты, которые искали:

import requests
from lxml import html

url = 'https://www.futbin.com/19/player/19/Gary%20Lineker/'
page = requests.get(url)
tree = html.fromstring(page.content)
statNames = tree.xpath('//*[@class="ig-stat-name-tooltip"]/text()')

print([res for res in statNames])

Результат:

['Pace', 'Acceleration', 'Sprint Speed', 'Shooting', 'Positioning', 'Finishing', 'Shot Power', 'Long Shots', 'Volleys', 'Penalties', 'Passing', 'Vision', 'Crossing', 'FK. Accuracy', 'Short Passing', 'Long Passing', 'Curve', 'Dribbling', 'Agility', 'Balance', 'Reactions', 'Ball Control', 'Dribbling', 'Composure', 'Defending', 'Interceptions', 'Heading Accuracy', 'Marking', 'Standing Tackle', 'Sliding Tackle', 'Physicality', 'Jumping', 'Stamina', 'Strength', 'Aggression']
...