Yahooニュースのコメントをスクレイピングで取得できるかやってみました。

コメント欄にはiframeというフレームが使われているので、ニュースが掲載されているページのurlだけではうまくいきません。ブラウザをつかってフレームを開いてみるとそのurlはこのような構造になっています。長いので途中で改行しています。

記事のtopic_idとspace_idとfull_page_urlがわかればここからコメントを取得することができそうです。

記事が掲載されているページのurlからtopic_idとspace_idとfull_page_urlを知ることはできるのでしょうか?

HTMLを調べてみるとこんな部分がみつかりました。topic_idとspace_idとfull_page_urlに相当する部分がすべて記述されています。

news-comment-pluginというclassはここだけのようなので、ここから必要なデータを取得します。

こんな感じでコメントのurlを取得できます。またコメントが複数ページの場合、page=1の部分を変えればすべて取得できます。

以下は記事のurlを引数にしてコメントのurlのリストを返すメソッドです。

パッケージマネージャーでAngleSharpをインストールしておいてください。また参照にSystem.Web.dllを追加しておいてください。

コメントのurlのリストが取得できたら実際にアクセスして名前、時刻、コメントの内容、そう思う思わないの数を文字列として取得します。

こんな感じで取得できます。