xpathの文字コードをUTF-8に変換すれば、文字列マッチングができるようになる。
html_nodes(data, xpath = iconv("//table[@class='style56']//a[contains(text(),'図')]", "cp932", "UTF-8"))
仕事でウェブスクレイピングを行うことに。
解析環境は以下
・Windows 10 Pro 64bit
・R
・rvest
a要素の内容に”図”を含むノードを取得しようとして
library(rvest) uri <- "https://www.safety-kinki.meti.go.jp/denryoku/26accident/H26FYdenki_jiko.htm" data <- read_html(uri, encoding = "cp932") html_nodes(data, xpath = "//table[@class='style56']//a[contains(text(),'図')]")
のように記載。
でも、要素は取得できなかった。
{xml_nodeset (0)}
一方、Linux (Ubuntu)だと上手くいく。
「あ、文字コードの問題ね」とうことで、xpath引数の文字コードをUTF-8に変換。
html_nodes(data, xpath = iconv("//table[@class='style56']//a[contains(text(),'図')]", "cp932", "UTF-8"))
これで解決。
{xml_nodeset (8)} [1] <a href="image_jirei7.pdf">(図)</a> [2] <a href="image_jirei17.png">(図)</a> [3] <a href="image_jirei19.pdf">(図)</a> [4] <a href="image_jirei32.pdf">(図)</a> [5] <a href="image_jirei38.pdf">(図)</a> [6] <a href="image_jirei40.pdf">(図)</a> [7] <a href="image_jirei45.pdf">(図)</a> [8] <a href="image_jirei48.pdf">(図)</a>
xpathはUTF-8で記載する仕様なのかな?
--
YouTube: ミサキさん
問い合わせ先
Mail: caprico.aries@gmail.com
Twitter: https://twitter.com/caprico_aries(無言フォローもお気軽に)
コメント