首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果<td>标签是相同的,还可以从HTML Table中web抓取数据吗?

如果<td>标签是相同的,还可以从HTML Table中web抓取数据吗?
EN

Stack Overflow用户
提问于 2018-12-14 05:13:08
回答 2查看 383关注 0票数 0

一般来说,我对R和web抓取是非常陌生的。我试图通过R从HTML表中获取特定的数据片段,但是所有标记在表中都具有相同的名称,这意味着如果我尝试使用该名称获取数据,它将获取比我需要的更多的数据。

Here is the page

我试图从中获取的表显然是显示统计数据的巨大表。

例如,整个表中都有< td class= "zientriert“>,所以当我尝试从该行获取数据时,它会从每个”zientriert“行获取数据。有没有办法获取我需要的数据,而不是从每一行都获取数据?

EN

回答 2

Stack Overflow用户

发布于 2018-12-14 06:00:51

HTML表单元格是唯一可识别的,尽管它们具有相同的类。如果不是这样,数据就不能输入。关于你的问题,答案是肯定的:)

通过使用所需单元格的路径选择器,可以最容易地抓取这些信息。如果只想要一个单元格,请在浏览器中打开开发人员工具(F12)并选择该单元格。我正在运行Firefox,你也可以右击和“检查元素”。

如果您随后右键单击要抓取=> Copy => selector的元素,您将看到一组选择器可供选择。例如,对于您提供的页面(2,67)的顶行PPM,XPath选择器是/html/body/div[6]/div[10]/div[1]/div/div[4]/div/table/tbody/tr[1]/td[6]

当然,此选择器对于该单元格是唯一的。如果你想更动态地抓取,那么学习更多关于选择器和正则表达式来定义一个范围绝对是值得的。CSS选择器在这种情况下可能更容易,因为您可以从样式相同的元素中提取数据。

如果你想了解更多关于web抓取的知识,了解网页是如何构建的(主要是HTML和CSS)是很重要的。

票数 1
EN

Stack Overflow用户

发布于 2018-12-14 06:22:11

清理数据仍然需要一些工作,这将为您提供df中的大部分数据

代码语言:javascript
复制
> 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53770146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档