【发布时间】:2021-07-22 08:50:21
【问题描述】:
我们正在努力抢占this fangraphs link 的主桌。使用rvest:
url = 'https://www.fangraphs.com/leaders/splits-leaderboards?splitArr=1&splitArrPitch=&position=B&autoPt=false&splitTeams=false&statType=team&statgroup=2&startDate=2021-07-07&endDate=2021-07-21&players=&filter=&groupBy=season&sort=9,1'
table_nodes = url %>% read_html() %>% html_nodes('table')
table_nodes
table_nodes
{xml_nodeset (7)}
[1] <table class="menu-standings-table"><tbody><tr>\n<td>\r\n <div class="menu-sub-header">AL East</div>\r\n ...
[2] <table class="menu-team-table">\n<tr>\n<td>\r\n <div class="menu-sub-header">AL East</div>\r\n ...
[3] <table class="menu-team-table">\n<tr>\n<td>\r\n <div class="menu-sub-header">AL East</div>\r\n ...
[4] <table>\n<tr>\n<td><a href="http://www.fangraphs.com/blogs/top-45-prospects-baltimore-orioles">BAL</a></td>\n<td><a href="http://www.fangraphs.com/blogs/top-34-prospects ...
[5] <table>\n<tr>\n<td><a href="http://www.fangraphs.com/blogs/top-30-prospects-atlanta-braves">ATL</a></td>\n<td><a href="http://www.fangraphs.com/blogs/top-49-prospects-ch ...
[6] <table>\n<tr>\n<td><a href="http://www.fangraphs.com/blogs/top-40-prospects-baltimore-orioles">BAL</a></td>\n<td><a href="http://www.fangraphs.com/blogs/top-38-prospects ...
[7] <table>\n<tr>\n<td><a href="http://www.fangraphs.com/blogs/top-27-prospects-atlanta-braves">ATL</a></td>\n<td><a href="http://www.fangraphs.com/blogs/top-41-prospects-ch ...
这 7 个表格都不是包含所有不同球队统计数据的 URL 上的主表格。 url %>% read_html() %>% html_nodes('div.table-scroll') 返回一个空的节点集,div.table-scroll 是主表所在的包装 div。
编辑:我猜这是网络请求,但仍然不确定如何从中获取 API 调用。如何查看完整的 API 调用?
【问题讨论】:
-
页面加载后,该表看起来是由 javascript 填充的(带有单独的请求)。没有对
rvest做太多事情,但我怀疑它可能无法处理动态内容。 -
似乎确实如此。我在 Chrome 开发人员工具 > 网络 > XHR 中四处寻找,试图查看是否可以在其中找到一些东西来抓取该表,但找不到该表的数据来自哪里。
-
我在页面源中看不到表格。 ps:表格右上角有一个
Export Data按钮。 -
是的,导出数据按钮很方便,但是我们正在寻找一种程序化的方法来抓取这个表格并在 R 中进行一些分析。我们正在尝试删除手动方面(还有其他表格可以抓取以及)。
标签: r web-scraping rvest