[解決済み] xpathSApplyを使用してRでXML属性をスクレイピングする
2022-02-05 10:23:40
質問
xpathSApply(XMLパッケージ)を使ってRでXMLをスクラップしていますが、属性の取り出しに問題があります。
まず、XMLの関連するスニペットです。
<div class="offer-name">
<a href="http://www.somesite.com" itemprop="name">Fancy Product</a>
</div>
を使って、「Fancy Product」(=要素?)をうまく引き出せました。
Products <- xpathSApply(parsedHTML, "//div[@class='offer-name']", xmlValue)
しかし、ドキュメントが良くできていて、いくつかの質問に答えることができたので、それを活用することができました。私は、".をどのように引っ張るのかがわかりません。 http://www.somesite.com "が出てしまいますが(属性?) 3番目の項を「xmlValue」から「xmlGetAttr」に変更する必要があると推測していますが、完全に外れているかもしれません。
参考までに(1)私が貼り付けたスニペットの上にさらに2つの親 < div> があり、(2)ここに省略した完全版っぽいコード(私は関係ないと思うが完全性のために含まれている)がある。
library(XML)
library(httr)
content2 = paste(readLines(file.choose()), collapse = "\n") # User will select file.
parsedHTML = htmlParse(content2,asText=TRUE)
Products <- xpathSApply(parsedHTML, "//div[@class='offer-name']", xmlValue)
解決方法は?
その
href
は属性です。適切なノードを選択することができます
//div/a
を使用し
xmlGetAttr
関数と
name = href
:
'<div class="offer-name">
<a href="http://www.somesite.com" itemprop="name">Fancy Product</a>
</div>' -> xData
library(XML)
parsedHTML <- xmlParse(xData)
Products <- xpathSApply(parsedHTML, "//div[@class='offer-name']", xmlValue)
hrefs <- xpathSApply(parsedHTML, "//div/a", xmlGetAttr, 'href')
> hrefs
[1] "http://www.somesite.com"
関連
-
[解決済み] ウェブサービスのレスポンスにおけるtext/xmlとapplication/xmlの違いは何ですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] XMLの<![CDATA[]]>は何を意味するのですか?
-
[解決済み] XMLを解析して、特定のノード属性のインスタンスをカウントするには?
-
[解決済み] XML文書でエスケープする必要がある文字は何ですか?
-
[解決済み] XMLでタグのブロックをコメントアウトするにはどうすればよいですか?
-
[解決済み] コマンドラインからXMLをきれいに印刷する方法は?
-
[解決済み] XMLを用いたカスタムandroid UI要素の宣言
-
[解決済み] XPathによる属性の取得
-
[解決済み】JavaでXPathを使ってXMLを読み込む方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JSF Faceletsのページを開くと、"このXMLファイルにはスタイル情報が関連付けられていないようです。"と表示される。
-
[解決済み】XMLファイルに改行を追加する方法は?
-
[解決済み] xmlns、xmlns:xsi、xsi:schemaLocation、およびtargetNamespace?
-
[解決済み] XMLにおける "loop "の標準?
-
[解決済み] xslt での配列の作成
-
[解決済み] 大きなファイルのXML分割
-
[解決済み] xlsxのエラーです。"レコードを削除しました。エラーを解決しようとすると、「/xl/workbook.xml 部分から名前付き範囲が削除されました」。
-
[解決済み】XPathで属性ノードの値を抽出する
-
[解決済み】XML スキーマ(XSD)検証ツール?[クローズド]
-
[解決済み】コンソールとファイルアペンダーを使用した非常にシンプルなlog4j2のXML設定ファイル