NewsPicksのコメントをスクレイピングで自動取得する方法
(注)クローリングを行う場合は、対象サイトの規約を確認の上、実行してください。
前回のブログでは、ヤフーニュースのコメント取得方法について解説しました。今回はNewsPicksのコメントの取得方法について解説します。
NewsPicksもヤフーニュースと同様、ニュース単位でコメントをつけることができます。実名登録が多いため、自社関連のインフルエンサーを発掘する際にも役立ちますので、自社の関連記事がピックされた際はコメントも取得しておくと、マーケティング等にも活用できるかと思います。
今回もヤフーニュースのコメント取得解説と同様、下記のゴーン氏の弁護団に関するニュースを例に解説していきます。
元記事は前回同様、こちらの時事通信の記事です。
Python × Seleniumでコメントを取得
今回もヤフーニュースのコメント取得と同様、こちらもPythonとスクレイピングライブラリのSeleniumを活用して、情報を取得していきたいと思います。
まずはSeleniumをインポートし、上記該当記事のURLを指定します。
NewsPicksの記事URLは https://newspicks.com/news/数字 というのが基本となります。
NewsPicks上のURLはこちら。
https://newspicks.com/news/4512249
NewsPicksの特徴①ID/PW制
ヤフーニュースはログインしなくても全コメントを閲覧できましたが、NewsPicksはログインしないとコメント全文が読めません。
スクレイピングライブラリである「Selenium」は、こうしたログインが必要なサイトのスクレイピングと相性が良いようなので、今回もSeleniumを活用していきたいと思います。
まずはSeleniumをインポートし、記事URLを設定します。
ここからユーザー名とパスワードでログイン画面からログインしていきます。メールアドレスとパスワードの項目に任意の情報を記載します。
NewsPicksの特徴②スクロールしないと全コメントページを表示できない
NewsPicksのスクレピングが難しいポイントが、画面を何度もスクロールして「他●●件のPickを表示」を表示させてクリックしないと、コメントが表示されないところです。
何度か試した結果、下記の方法でスクロールさせることでうまく抽出することができました。
「他●●件のPickを表示」を表示させてから、再度さらにスクロールさせるところがポイントとなるようです。
上記では1~10までの数値を繰り返し処理していますが、コメントが膨大になるようなニュースであればこの数字を増やし、スクロールの回数を増やしたほうが良いかもしれません。
ここからはヤフーニュースのスクレイピングと同様の処理となります。comment-rowという複数コメントを入れた全体のクラス要素から、ユーザー単位のクラス要素であるuser-profileをコメント分取得し、そこからコメントや名前を取得する流れになります。
上記のコードで下記100件ほどのコメントが一度に取得できました。いいね数や職業欄に記載されたデータなども取得することができます。
コメントをテキストマイニングすれば、コメントの傾向もつかみやすいです。
NewsPicksでは前回のネガティブコメントを多かったヤフーニュースと違い、やむを得ないというコメントを多いことが分かります。
以上、NewsPicksは実名でのコメントが多いため、インフルエンサーやキーパーソンを探すのにも役立ちます。
こうした情報はスクレイピングを使えば一括取得できるため、効率的な情報収集が可能です。ぜひご活用ください。