Mar*_*ski 4 html parsing r rvest
我想解析包含这些信息的HTML页面:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tajemnica Oscara Pistoriusa - Ksi??ki - WP.PL</title>
<meta name="description" content="Wieczorem, 13 lutego 2013 roku ona pisze dla niego kartk? na walentynki: <b>"Dzi? jest dobry dzie?, by powiedzie?, ?e Ci? kocham".</b> Zanim on odczyta t? wiadomo??, ona od kilku godzin nie..." />
<meta name="keywords" content="ksiazki, ksi??ka, literatura, czytelnik" />
<meta name="language" content="pl" />
<meta name="author" content="Grupa Wirtualna Polska" />
<meta name="robots" content="index,follow" />
Run Code Online (Sandbox Code Playgroud)
我在R中使用rvest 包.当我使用这样的代码时,使用这个选择器:"meta"
library(rvest)
content <- html("http://ksiazki.wp.pl/gid,17325376,tytul,Tajemnica-Oscara-Pistoriusa,galeria.html?ticaid=1147a0&_ticrsn=3")
nodesS <- html_nodes(content, "meta")
Run Code Online (Sandbox Code Playgroud)
我收到了所有metas的列表,但我只对一个特定的感兴趣.我应该使用哪个选择器来下载content此处的信息:
<meta name="keywords" content="ksiazki, ksi??ka, literatura, czytelnik" />
Run Code Online (Sandbox Code Playgroud)
编辑:谁能知道如何encoding正确设置参数?我收到了错误的编码,同时指定它:
> content <- html("http://ksiazki.wp.pl/gid,17325376,tytul,Tajemnica-Oscara-Pistoriusa,galeria.html?ticaid=1147a0&_ticrsn=3",
+ encoding = "UTF-8" )
>
> nodesS <- html_nodes(content, "meta[name=keywords]")
> html_attrs(nodesS)[[1]][2]
content
"ksiazki, ksiÄ…??ka, literatura, czytelnik"
Run Code Online (Sandbox Code Playgroud)
编辑:
我在hadley的github项目中找到了函数guess_encoding()和repair_encoding()本readme.me的概述
https://github.com/hadley/rvest
更改CSS选择器以包含属性值选择器:
nodesS <- html_nodes(content, "meta[name=keywords]")
Run Code Online (Sandbox Code Playgroud)
然后,您可以content通过添加以下内容来提取属性:
html_nodes(content, "meta[name=keywords]") %>% html_attr("content")
# [1] "ksiazki, ksi??ka, literatura, czytelnik"
Run Code Online (Sandbox Code Playgroud)