Веб-соскоб более чем на одного "брата" <div> - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь очистить сеть в python с селеном. Веб-сайт представляет собой страницу спортивных результатов, и моя конечная цель - получить в CSV (или xml в будущем) полный список результатов. Код сайта выглядит примерно так:

<div class="sportName soccer">
    <div class="event__header">
        <div class="event_title">
            <div class="event_titleBox">
            <span class="event_title--type">"Country"</span>
            <span class="event_title--name">"Competition"</span>
            </div>
        </div>
    </div>
    <div class="event_round">Day 1</div>
    <div class="event_match">Match 1</div>
    <div class="event_match">Match 2</div>
    <div class="event_match">Match 3</div>
    <div class="event_round">Day 2</div>
    <div class="event_match">Match 1</div>
    <div class="event_match">Match 2</div>
    <div class="event_match">Match 3</div>
</div>

Он выглядит так:

Country Competition
Day 1
Match 1
Match 2
Match 3
Day 2
Match 1
Match 2
Match 3

Моя проблема в том, что когда я пытаюсь получить информацию, я не могу получить всю информацию в той же переменной, я использую

results = driver.find_elements_by_xpath("//*[@class='sportName soccer']//*[@class='event__header']")

И это получает всю информацию, но все в одной строке. Как я могу получить "event_titleBox", "event_round" и "event_match по порядку, по очереди, в одной переменной?

Я могу сделать это, выбрав классы по одному в каждом варианте, но затем я получу все информация грязная, и я не знаю, как после этого поставить правильный порядок ...

Есть способ выбрать более одного класса в find_elements_by_xpath?

Большое спасибо

1 Ответ

0 голосов
/ 25 января 2020

В общем, лучше и чище пользоваться css:

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