Я работаю над соскабливанием определенной части веб-сайта, который выглядит как таблица, но нет (к сожалению).Получите беспорядочные скребковые данные в data.frame в R
Я использую этот код ...
htmldoc <- read_html("http://www.wettportal.com/quotenvergleich/valuebets/")
data <- htmldoc %>%
html_node(xpath='//*[(@id = "datagrid_content")]') %>%
html_text()
# alternative css selector: "#datagrid_content"
.. и получить этот вид продукции:
Fussball | Schweden | Cup\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n08.06.2016\r\nTipp\r\nVQ\r\nBuchmacher\r\n100%\r\nProfit\r\n\r\n\r\n\r\n\r\n19:00\r\nHuddinge IF - Enskede IK\r\n1 (DNB)\r\n1.73\r\nCoral\r\n1.50\r\n45.17%\r\n\r\n\r\n19:00\r\nHuddinge IF - Enskede IK\r\n1\r\n2.25\r\nCoral\r\n1.93\r\n35.00%\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
Как вы можете видеть, это действительно грязно и я до сих пор не было способный аккуратно получить его в data.frame.
Каждый получил представление о том, как либо
- выбрать объект по-разному, чтобы получить выход claner с самого начала? (предпочтительно)
- очистить данные таким образом, чтобы они вписывались в data.frame с такими столбцами: Спорт | Страна | Конкурс | Дата | Время | Team1 | Team2 ...?
спасибо.
Вау, спасибо большое! Я на самом деле надеялся на намек на возможные «трудовые удары» или что-то еще, но не ожидал, что кто-то пойдет по пути. Кроме того, благодарю вас за то, что вы показываете мне другой способ скреститься в сети в R ;-) –
Еще один вопрос: какой инструмент вы используете, чтобы точно найти Xpath элемента? Я использую selectorGadget и F12 в Chrome, но он не показывает один и тот же Xpath для элементов, которые у вас есть в вашем коде ... –
Ну, мой подход совсем другой. С помощью инструментов разработчика Chrome я обнаруживаю тег, где хранятся требуемые значения. E.G в случае командного вектора я заметил, что есть все в теге span. Но тогда может быть много тегов span на всей странице, поэтому я использовал «a/span», чтобы сигнализировать, что я хочу только разбить с одним тегом выше уровня. Я попытался запустить код, но он вернул еще несколько данных. Поэтому я ограничил выбор с помощью div как родителя.Таким образом, мой обычный подход начинается с тега, где есть значения, а затем добавлять родительские теги по мере необходимости, чтобы не указывать абсолютный путь –