【问题标题】:Scraping a dynamic html page with hidden html使用隐藏的 html 抓取动态 html 页面
【发布时间】:2019-09-20 09:57:45
【问题描述】:

我想从具有多个选项卡的动态网页中提取一些日志数据,当我进行屏幕抓取时它可以工作,但是当我通过 url 传递 url 时,html 不提供某些选项卡中的详细信息(例如,在这种情况下,活动下的详细信息,在所有选项卡中。

  library(RCurl)
  library(stringr)
  library(XML)
  library(RCurl)
  library(stringr)
  library(XML)
 library(rvest)  
 url<- c("https://issues.apache.org/jira/browse/AMQCPP-645")
 html<- getURL((url, followlocation = TRUE)
 doc = htmlParse(html, asText=TRUE)
 evs <- xpathSApply(doc, "//div[@class='issue-data-block']", xmlValue)

我想从网页中提取事件,但 html 不会自动显示选项卡中的信息(位于下部窗格下的所有选项卡下)

我期望输出如下:

  rows  evs 
   1      S A created issue - 25/Apr/19 15:48 Highlight in document.    
   2      Justin Bertram made changes - 25/Apr/19 17:53 Field Original Value 
          New 
         Value  Comment [ I'm using Firefox, and it's working no problem. It's 
         just HTML so    there shouldn't be any browser compatibility issues. 
         My guess is that Firefox  is holding on to an older, cached version or 
         something. Try opening a "private browsing" window and trying it from 
         there. ] Highlight in document.

   3      Timothy Bish made changes - 25/Apr/19 18:10 Resolution Fixed [ 1 ] 
            Status 
          Open [ 1 ] Closed [ 6 ] Highlight in document.
   4       Timothy Bish made transition - 25/Apr/19 18:10 Open Closed 2h 22m 1

有什么建议吗?

【问题讨论】:

    标签: r xml rvest stringr rcurl


    【解决方案1】:

    我建议你不要抓取 html,而是使用 REST api。原因是页面的部分内容是使用 javascript 构建的,因此仅抓取 html 并评估 JS 是不够的。例如,在您的情况下,您可以调用 Jira 的 REST api 来查询您需要的数据。从技术上讲,这与您已经在做的并没有什么不同。

    例如,要获取 cmets,请调用 https://issues.apache.org/jira/rest/api/2/issue/AMQCPP-645/comment,它会返回评论对象列表。每个都有自己的 URL(例如https://issues.apache.org/jira/rest/api/2/issue/13230124/comment/16826237)。其他选项卡可以重复相同的操作。

    【讨论】:

    • 我对所有活动选项卡感兴趣,而不仅仅是 cmets,这可以实现吗?
    • 是的。在为 cmets 解析数据后,您可以调用 REST 方法(另一种方法),该方法将返回工作日志、转换等。您只应考虑您必须获得授权才能查询某种数据(无论您使用哪种方式) )。
    • 好的,谢谢,我如何请求 jira api 身份验证?有链接吗?让我试试..
    猜你喜欢
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2012-11-24
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多