【问题标题】:Learning web scraping.. need some clarity on xpath="/html/body/div[3]/div[3]/div[4]/div/table[5] using xpath plugin学习网络抓取.. 使用 xpath 插件需要对 xpath="/html/body/div[3]/div[3]/div[4]/div/table[5] 有一些了解
【发布时间】:2022-01-10 07:17:00
【问题描述】:

我正在学习 r 中的网页抓取,并了解 HTML 代码。但这里有些混乱...

代码 1:

url <- "https://en.wikipedia.org/wiki/World_population"
ten_most_df <- read_html(url) 


ten_most_populous <- ten_most_df %>% 
  html_table() %>%
  .[[6]] 

代码 2:

url <- "https://en.wikipedia.org/wiki/World_population"
    ten_most_df <- read_html(url)




ten_most_populous <- ten_most_df %>% 
  html_nodes(xpath="/html/body/div[3]/div[3]/div[4]/div/table[5]") %>% html_table()

代码 1 和 2 中使用的方法是否与代码 1 中的方法相同,我们正在抓取 6 节点,但是代码 2 对我来说不清楚,因为 div[3] 重复了两次。你能澄清一下吗?会很有帮助的。。谢谢。

【问题讨论】:

  • 我也会考虑html_node(xpath='//*[@id="10_most_populous_countries"]/parent::h3/following-sibling::table') %&gt;%html_table 。对于是否索引到表中而不是依赖于 html 中的其他现有关系,这是个人偏好。应避免使用长选择器/xpath,因为它们容易中断。我通常会寻求稳定的属性/元素(基于经验)。可能还考虑使用 Wayback 机器来感受此页面的 html 更改(如果可能的话)。

标签: r web-scraping xpath rvest


【解决方案1】:

您确实应该通过阅读有关 XPath 的参考书来发现这一点,而不是通过在 StackOverflow 上询问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2019-07-04
    • 2017-12-23
    相关资源
    最近更新 更多