私はrvest
ウェブスクレイピングに使用しています - 試験的に、IMDB から映画のレビュースコアをスクレイピングしています。この例では、このサイトからすべてのレビューと関連するユーザー名を取得しようとしています。すべてのレビューに星の評価があるわけではないことに注意してください。私が欲しいのは、星の評価があるレビューだけです。
私の開始コード:
library(rvest)
library(magrittr)
id = "0000001"
reviews = paste0("http://www.imdb.com/title/tt",id,"/reviews-index?start=0;count=10000000") %>%
html() %>%
html_nodes(xpath='//td[contains(@class, "comment-summary")]')
これは、期待どおりに 11 件のレビューのリストを返します (この映画には 11 件のレビューがあります)。
次に、このリストを移動して星評価の存在を確認しようとすると、予期しない結果が得られます。
reviews %>%
.[[1]] %>%
html_node(xpath='//img[contains(@width,"102")]')
これにより、
<img width="102" height="12" alt="10/10" src="http://i.media-imdb.com/images/showtimes/100.gif"/>
しかし、最初のレビューには実際には次のものしか含まれていません。
<td class="comment-summary">
<a href="/user/ur0093335/"><img class="avatar" src="http://ia.media-imdb.com/images/M/MV5BMjI2NDEyMjYyMF5BMl5BanBnXkFtZTcwMzM3MDk0OQ@@._SX40_SY40_SS40_.jpg" height="width="/></a>
<h2><a href="reviews?count=10000000&start=0">one-shot record of a belly dancer</a></h2>
<b>Author:</b>
<a href="/user/ur0093335/">Brian Fuller (bfuller@montreat.edu)</a>
<small>on 12 August 1998</small>
</td>
私のimg
コードによって返された は、サブセットに存在しません。 実際にhtmlをサブセット化して、その後のhtml_node()
操作を直感的に行うにはどうすればよいですか?