Можно ли по-прежнему обрабатывать данные из таблицы HTML в Интернете, если теги <td>совпадают? - PullRequest
0 голосов
/ 14 декабря 2018

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

Вот страница

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

Например, есть

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

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Еще немного работы, необходимой для очистки данных, это дает вам большую часть данных в формате df

> library(tidyverse)
> library(rvest)
> 
> page <- xml2::read_html("https://www.transfermarkt.com/andreas-christensen/leistungsdatendetails/spieler/196948")
> 
> tbl <- html_table(page, fill = T)[[2]]
> head(tbl, 10)
   Season Competition      Competition reihenfolge ASC, saison_id DESC, verein_id ASC Club       PPM             
1             Total :          Total :                                             NA       199 1,81 11         8
2   18/19                Europa League                                             NA    6 2,67    -  - - / - / -
3   18/19               Premier League                                             NA    1 0,00    -  - 1 / - / -
4   18/19                      EFL Cup                                             NA    2 3,00    -  - - / - / -
5   18/19             Community Shield                                             NA    -    -    -  - - / - / -
6   17/18               Premier League                                             NA   27 1,67    -  - - / - / -
7   17/18                       FA Cup                                             NA    3 3,00    -  - - / - / -
8   17/18             Champions League                                             NA    6 1,50    -  - - / - / -
9   17/18                      EFL Cup                                             NA    4 1,75    -  - - / - / -
10  17/18             Community Shield                                             NA    -    -    -  - - / - / -
       /   /        
1  3 / - / - 17.068'
2       540'    <NA>
3        90'    <NA>
4       139'    <NA>
5          -    <NA>
6     2.071'    <NA>
7       230'    <NA>
8       454'    <NA>
9       341'    <NA>
10         -    <NA>
0 голосов
/ 14 декабря 2018

Ячейки таблицы HTML являются уникально идентифицируемыми, несмотря на то, что они имеют один и тот же класс.Если они не будут, данные не могут быть введены.Что касается вашего вопроса, то ответом будет «да»:)

Очистить эту информацию проще всего, используя селекторы пути для нужных вам ячеек.Если вам нужна только одна ячейка, откройте инструменты разработчика (F12) в браузере и выберите ячейку.Я использую Firefox, и вы также можете щелкнуть правой кнопкой мыши и «Проверить элемент».

Если вы затем щелкните правой кнопкой мыши в HTML-элементе, который хотите очистить => Копировать => selector, вы получите набор селекторов на выбор.Например, для PPM верхней строки страницы, которую вы указали (2,67), селектор XPath имеет значение /html/body/div[6]/div[10]/div[1]/div/div[4]/div/table/tbody/tr[1]/td[6].

Конечно, этот селектор уникален для этой ячейки.Если вы хотите использовать более динамичную очистку, определенно стоит узнать больше о селекторах и регулярных выражениях для определения диапазона.Селекторы CSS могут быть проще в этом случае, если учесть, что вы можете извлечь данные из тех элементов, которые имеют одинаковый стиль.

Если вы хотите узнать больше о веб-очистке, важно понять, как создаются веб-страницы (прежде всегоHTML и CSS).

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