0

以下のコードを実行したとしましょう:

url.df_1 = htmlTreeParse(url_1, useInternalNodes = T)

そして htmlTree の下になりました:

           <!-- ******************* related ******************* --> 
    <div class="more-related-box">

    <div id="app_related">
        <h3>Customers Also Bought</h3>
            <ul>
<li><a href="/app/ios/flick-golf/" title="Flick Golf!"><img src="http://a2.mzstatic.com/us/r1000/067/Purple/v4/25/a8/91/25a891df-fed4-9dc4-0d86-1c8f5acf893f/mzl.fcctkywr.75x75-65.jpg" class="app_icon"><span class="app_name">Flick Golf!</span><span class="category">Games</span></a></li>

              <li><a href="/app/ios/minecraft-pocket-edition/" title="Minecraft – Pocket Edition"><img src="http://a1.mzstatic.com/us/r1000/070/Purple2/v4/3f/56/07/3f56074b-af27-8ba3-7ef8-c97314c13ee7/mzl.rfhcaysw.75x75-65.jpg" class="app_icon"><span class="app_name">Minecraft – Pocket Edition</span><span class="category">Games</span></a></li>

上から掴みたいのは「flick-golf」と「minecraft-pocket-edition」です。(したがって、上記はhtmltreeの一部であり、これらの名前を取得して、最終的にリストまたはデータフレームとして作成したいと考えています。)

これまでのところ、これを試しました(および他の多くの)

getNodeSet(url.df_1, "//div[@id = 'app_related']//h3 ")

しかし、私は結局得ました

[[1]]
<h3>Customers Also Bought</h3> 

attr(,"class")

何かアドバイス?ありがとうございました!

4

1 に答える 1

1

まず、xmlが適切に形成されていることを確認する必要があります。お世話になると思います。その後、正しいXPath引数が必要になります。これは、あなたの場合は次のようになります。//li/a/@title

> str <- '<div class="more-related-box">
+ <div id="app_related">
+ <h3>Customers Also Bought</h3>
+ <ul>
+ <li>
+ <a href="/app/ios/flick-golf/" title="Flick Golf!">
+ <img src="http://a2.mzstatic.com/us/r1000/067/Purple/v4/25/a8/91/25a891df-fed4-9dc4-0d86-1c8f5acf893f/mzl.fcctkywr.75x75-65.jpg" class="app_icon" />
+ <span class="app_name">Flick Golf!</span>
+ <span class="category">Games</span>
+ </a>
+ </li>
+ <li>
+ <a href="/app/ios/minecraft-pocket-edition/" title="Minecraft – Pocket Edition">
+ <img src="http://a1.mzstatic.com/us/r1000/070/Purple2/v4/3f/56/07/3f56074b-af27-8ba3-7ef8-c97314c13ee7/mzl.rfhcaysw.75x75-65.jpg" class="app_icon" />
+ <span class="app_name">Minecraft – Pocket Edition</span>
+ <span class="category">Games</span>
+ </a>
+ </li>
+ </ul>
+ </div>
+ </div>'
> doc <- xmlParse(str)
> getNodeSet(doc, "//li/a/@title")
[[1]]
        title 
"Flick Golf!" 
attr(,"class")
[1] "XMLAttributeValue"

[[2]]
                         title 
"Minecraft – Pocket Edition" 
attr(,"class")
[1] "XMLAttributeValue"

attr(,"class")
[1] "XMLNodeSet"
于 2013-02-07T07:55:04.843 に答える