【问题标题】:Using R to scrape data from a table populated possibly with javascript使用 R 从可能使用 javascript 填充的表中抓取数据
【发布时间】:2019-03-06 04:38:13
【问题描述】:

你好 R 狂热分子...

一段时间以来,我一直在使用 R 从各种网站上抓取数据,但是这个让我很困惑。

我正在尝试从下表中抓取数据: http://www.vigimeteo.com/PREV/obs/obs_seul.html?a=07005&b=

但是到目前为止我的努力都失败了。

我已经尝试了以下

  1. 简单的 wget,它会生成来自站点的 html,以及一些用于填充表格的 javascript 函数,但我无法真正查看它并找到可以用来抓取的部分使用一些 R 的 JS 实用程序的数据。可能是我对 JS 的体验很差
  2. 我在这里尝试了解决方案 Reading data from iframe,b/​​c 看起来原始网站在 iframe 中有表格,但还是没有运气
  3. getURL 和 readHTMLTable 的组合

    thisURL = http://www.vigimeteo.com/PREV/obs/obs_seul.html?a=07005&b= theURL = getURL(thisURL,.opts = list(ssl.verifypeer = FALSE) ) tables = readHTMLTable(theURL)

这会导致一个空表

  1. 我花了大约一个小时浏览我能找到的 html 和 javascript 代码的每个部分,但成功率有限,详见 1。

看起来可能是R's Selenium package could have a potential solution,但是我这里还没弄明白怎么用,可能是不熟悉

我觉得我只是在这里遗漏了一个重要的部分......也许是因为我缺乏 JS 和 XML 知识?

更新

我注意到,如果我右键单击表格元素并使用 Chrome 的“检查”功能,它会生成包含所有表格值的 HTML,并且非常易于抓取……我仍然没有确定如何在 R 中达到这一点。有人提示在“检查”屏幕中的何处查看以尝试指导我的进度吗?

【问题讨论】:

  • 只是复制粘贴到电子表格中似乎很有效。
  • 复制粘贴不是一个选项,这是需要自动化的工作流程的一部分,最好在 R 中

标签: javascript r web-scraping


【解决方案1】:

解决方法如下。

  1. 使用源代码,识别表格的源 html
  2. 导航到源页面,然后使用 Chrome 开发者工具 > 网络 > XHR
  3. 刷新页面查找数据来源
  4. 从该来源刮取

感谢@XR SC 在这里的回答:web scraping using Chrome Dev Tools 提供了基本方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多