集めたデータは、どのように活用するの?
というわけで、今回はYahoo知恵袋の質問の検索結果の取得および、質問の詳細ページの取得を例にスクレイピングの実装例を紹介します。
さらに、集めたデータの活用例としてword2vecとPCAを用いて近い単語をグラフにプロットする例も紹介します。
準備
まずは、スクレイピングするための必要なものを準備します。
・pythonの基本的な文法の知識(この記事では解説しません)
・seleniumという自動テストで使用するライブラリ
・chromedriverというGoogle Chromeのドライバ
seleniumのインストール
seleniumをインストールします。
インストールは、以下のコマンドで実行できます。
pip install selenium
chromedriverのインストール
以下のサイトに行き、Google Chromeのドライバをダウンロードします。
https://chromedriver.chromium.org/downloads
インストールされているGoogle Chromeブラウザのバージョンに合わせたドライバをダウンロードします。
Chromeのバージョンは、以下の手順で確認ができます。
- メニューから「Chrome」を選択する
- 「Google Chromeについて」を選択する
- 画面内の「Chrome について」の部分にバージョンが記載されています。
■ドライバーを間違えると・・・・
プログラム実行時、ドライバーを間違えていると、以下のようなエラーが出ます。
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81
そのような場合は、バージョンを確認してダウンロードします。
UP主(筆者)は、ドライバーのエラーで1日中はまっていたようですよ。
よって、ドライバーのバージョンは注意深く進めましょう。
xpathを調査する
取りたい部分のxpathを調べます。
xpathを調べるために筆者は、Google Chromeを使用しています。
質問の検索結果のxpathを取得する手順を記載します。
- マウス右クリックしてメニューを出す
- 「検証」をクリックする
- ブラウザーの右側にhtmlソースが出てくることを確認
- 該当するhtmlソースのところで右クリックしてメニューを出す
- 「Copy」を選択する
- 「Copy XPath」を選択しクリップボードにXPathをコピーする
スクレイピングをやってみる
では、実際にスクレイピングをします。
この記事では、以下の2つのページをスクレイピングしています。
・検索結果の質問一覧から各詳細へのリンク情報
・質問詳細の質問文とアンサー(回答)
スクレイピング方法については、実際のコードを使って解説します。
これらのコードはgitに上げたので、全体をみたいときは参考にしてください。
検索結果の質問一覧
この例では、検索結果をcsvに書き出す
質問詳細の質問文とアンサー
その後に、csvからリンクを1つずつ読み込み
スクレイピング結果を図にプロットするよ
スクレイピングのやり方わかったけど、何万文字もあるテキストデータなんてどうするねん?
ひとつひとつ丁寧にみている余裕なんてあると思う?
要約して、ユーザの発言内容の傾向を調べてみてはどう?
具体的な要約方法の一つは、2次元の図にプロットしてみることだよ。
スクレイピング結果を2次元の図にプロットすると以下のような図を作ることができ、ユーザの発言内容の傾向を”なんとなく”調べることができます。
2次元にプロットするためには、以下の技術を使っています。
- 日本語の形態素分析
- word2vecによる単語のベクトル化
- PCA(主成分分析)による次元圧縮
- matplotlibによる図にプロット
それにしてもかなり汚い図だね~
単語が重なりすぎて、傾向がつかみずらいな~
up主(筆者)が無駄な単語も出力してしまっているからね〜。
本当は、名詞のみ出力するなどの対応が必要だよ。
面倒だからやっていないらしいよ。
具体的な実装方法については、以下の記事でまとめたので参考にしてください。
スクレイピングでデータを集めてみたんだけど、10000行とかデータが多すぎて分析が面倒だよ。 なんかいい方法ないかな? […]
まとめ
今回はyahoo知恵袋を例にスクレイピング方法、および集めたデータを2次元にプロットする方法を述べました。
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |