【问题标题】:Extracting specific HTML elements using the xml package in R使用 R 中的 xml 包提取特定的 HTML 元素
【发布时间】:2013-01-09 11:45:22
【问题描述】:

我正在使用带有 xml 包的 R 来解析存储在 html 文件中的数据。使用来自另一个问题 (https://stackoverflow.com/a/1849388/1409652) 的建议,我正在使用 readHTMLTable 函数对此进行烹饪。

我有一个问题,即感兴趣的 html 表有两个标题。其中一个没有被 readHTMLTable 拾取,并提供了一些与数据相关的单元的识别信息(这些信息因所有不同的 html 文件而异,所以我需要阅读它们,而不仅仅是放入默认值)。

我认为我需要将 xml 包中的一个函数指向 html 文件并定位我想要的特定行。不幸的是,我不知道哪个功能以及我对这方面术语的了解不是很好。我在下面放了一个 HTML 代码示例,但没有包含值,因为它们很敏感,如果有帮助,我可以交换一些虚拟数据并发布它。因此,包含“Period”、“Volume”、“Tariff”的标题以及表体中的所有数据都很好。包含“Unit1”、“Unit2 等”的标头未通过。

<thead> 
<tr> 
<th class="center" colspan="1" rowspan="1"></th><th class="center" onmouseover="javascript:Tip('Unit1');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Unit1</th><th class="center" onmouseover="javascript:Tip('Unit2');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Unit2</th><th class="center" onmouseover="javascript:Tip('Unit3');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Unit3</th><th class="center" onmouseover="javascript:Tip('Others');" onmouseout="javascript:UnTip('');" colspan="4" rowspan="1">Others</th> 
</tr><tr> 
<th class="left" colspan="1" rowspan="1">Period</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Volume</th><th class="left" colspan="1" rowspan="1">%</th><th class="left" colspan="1" rowspan="1">Tariff</th><th class="left" colspan="1" rowspan="1">%</th> 
</tr> 
</thead>
<tbody>…all the data…</tbody>

因此,总而言之,有没有人对如何使用 R 中的 xml 包提取上述 html 中的单元信息有任何指示(尽管如果这是最好的方法,我很乐意使用其他包)?

【问题讨论】:

    标签: html r parsing


    【解决方案1】:

    我只需要一些学科知识;-)

    使用 xpath 语法,我设法使用以下方法获取了单位名称列表:

    xpathSApply(doc, "//th[@class='center']/text()")
    

    相信我也可以通过解决这些 // 来提高效率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 2015-06-14
      • 2018-04-02
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多