おわりんです。
最近pythonを使ってスクレピングの勉強をしたいと思っていました。
なので、さっそく練習として、amazonの口コミ情報をダウンロードし、エクセルに出力するということにチャレンジしました。ネットで検索すると、多くのサンプルコートあったので、それを参考にして、自分なりに作ってみました。
スクレピングは、注意点があり、対象のサイトに負荷をかけてしまうので、禁止されているところもあるようです。負荷がかからないように、待ち時間をプログラムに入れています。
参考にしたサイト
作成したサンプルコードの動作環境
OS:Windows 11 HOME
言語:Python 3.11.1
ツール:
・selenium 4.24.0(chromedriverを使用)
・beautifulsoup4 4.12.3
エディタ:Jupyter notebook
ブラウザ:GoogleChrome(128.0.6613.138)
※アプリを使う場合、GoogleChromeをインストールしておく必要あります。その他は、特にインストールしなくても実行ファイルアプリは動くと思います。
実行ファイルアプリダウンロード(使い方)
ダウンロードリンク
※ダウンロードできないとき(ワードクラウドを作成できるアプリの記事を参考)
使用手順
ダウンロードしたら、左の「amazon_review」をダブルクリック。右のGUIがでてくるので、テキストボックスの中に口コミをダウンロードしたいサイトのURLをコピー&ペーストする。そのあと「実行ボタン」を押す。
商品サイトのURLをテキストボックスに張り付ける(一例)
保存場所を選択すると、ソフトが動き出します。「終わりました」と表示されたらエクセルファイルが出力されます。
下記のように口コミ情報をダウンロードした商品がエクセルのファイル名となりフォルダの中にできあがります。
amazonの口コミ件数が多数あっても100件までしかできませんでした。
(追記24/9/23:時点では、50件になってました)
(追記24/10/6:また100件できました。どうやら時間帯などでも、取得できるデータの数が変わるようです。)
「次へ」ボタンがあるところで無くなってしまう(透明色になり押せなくなる)ので、サイトで「次へ」ボタンを押して確認できる分しかダウンロードできませんでした。きっと、制限をかけてるのだと思います。多くの人たちが、大量の情報をスクレピングしたら、ものすごい負荷になるから対策しているのだと思います。
でも、とても簡単にpythonを使うといろいろなことが素人でもできてしまいます。
応用すればいろいろなことを自動化して情報をとってくることも可能だと思いました。
個人的には、今回のアプリ作成でスクレイピングについてとても勉強できました。
サンプルコード(jupyter notebook)
正直動けばいいやという感じで、変数の名前が適当だったり、無駄のコードも多いと思いますが、ソースをのせておきます。参考にしてください。
必要な環境が構築できていれば、「jupyter notebook」にコピペで貼り付けて動くと思います。