哪个选择器写在R的rvest包中?

时间:2015-03-30 14:15:25

标签: r css-selectors rvest

我正在尝试从特定网站的源代码中提取信息

在源代码中有行:

# [[4]]
# <script type="text/javascript">
#   <![CDATA[
#     <!-- // <![CDATA[
#       var wp_dot_addparams = {
#         "cid": "148938",
#         "ctype": "article",
#         "ctags": "dziejesiewkulturze,piraci z karaibów,Charlie Hebdo,Scorpions",
#         "cauthor": "",
#         "csource": "film.wp.pl",
#         "cpageno": 1,
#         "cpagemax": 1,
#         "cdate": "2015-02-18"
#       };
#       // ]]]]><![CDATA[> -->
#                          ]]>
#   </script> 

我想从中提取:

"ctags": "dziejesiewkulturze,piraci z karaibów,Charlie Hebdo,Scorpions",

有谁知道我应该如何在R的html_nodes包中的rvest函数中指定选择器?

html("http://film.wp.pl/id,148938,title,dziejesiewkulturze-Codzienna-dawka-informacji-kulturalnych-180215-WIDEO,wiadomosc.html") %>%
  html_nodes("script")

1 个答案:

答案 0 :(得分:4)

  1. 从元素的文本中提取JSON对象(当​​你在它的时候整理选择器)

  2. 使用jsonlite的fromJSON()函数将其解析为列表。

  3. 您可以使用“$ ctags”

    直接访问它
    library(jsonlite)
    
    json <- html("http://film.wp.pl/id,148938,title,dziejesiewkulturze-Codzienna-dawka-informacji-kulturalnych-180215-WIDEO,wiadomosc.html") %>%
      html_nodes("script:contains('var wp_dot_addparams')") %>%
      gsub(x=., pattern=".*var wp_dot_addparams = (\\{.*\\});.*",replacement="\\1") %>%
      fromJSON()
    
    json$ctags
    
    [1] "dziejesiewkulturze,piraci z karaibów,Charlie Hebdo,Scorpions"