ChatGPTとは、文章作成やプログラミング作成といったことができるAIです。
2023年3月にはGPT-4という新しいバージョンがリリースされ、今注目を集めているAIのひとつです。
ChatGPTではプログラミングコードも生成できます。
私は現役のシステムエンジニアです。
本業でもプログラミングはしますが、Pythonを使ってデータ収集などのプログラミング副業にもチャレンジしています。
今回は、ChatGPTを使ってスクレイピングコードを自動生成できるか試してみました。
結論から言えば、ChatGPTで、Googleの検索結果から上位サイトのデータを取集するスクレイピングコードを作成できました。
試行錯誤は必要ですが、ChatGPTが作ったものをそのまま実行して、やりたいことを実現できるコードを作成することができました。
私が試行錯誤した内容については、記事の中で紹介します。
スクレイピングによるデータ収集を行うときは、対象サイトがスクレイピングを禁止していないかよく確認してください。
【体験談】ChatGPTを使ってGoogleの検索結果を取得するスクレイピングコードを作成
それでは早速本題です。
今回は、Googleの検索結果上位10サイトから、以下の情報を取得するPythonのコードを作成してもらいます。
- サイトタイトル
- サイトURL
- H2見出し
- H3見出し
結論から言えば、ChatGPTで、上記のデータを取集するスクレイピングコードを作成できました。
私自身のスキル不足もあり、試行錯誤で1時間程度はかかりました。
ただ、ChatGPTが出力したコードをそのまま実行してデータ収集できたことに感動しました。
ここからは、実際に私がスクレイピングコードを作成した手順を紹介します。
手順1:コードを作ってもらう
今回私がChatGPTに指示した内容は以下のとおりです。
Pythonで以下を実現するコードを作成してください。
1.Googleで「ブログ 稼ぎ方」と検索する
2.上位10サイトに対して以下の処理を行う
2-1.サイトにアクセスする
2-2.サイトタイトル、URL、H2タグ、H3タグを取得する
2-3.Google検索結果に戻る
3.2で取得した10サイト分のデータをExcelに出力する
以下のようにPythonのコードを出力してくれました。
1回でやりたいことが実現できるコードを生成できれば良いのですが、そううまくはいきませんでした。
以下では、このコードを修正していくことで、やりたいことを実現するプログラムに仕上げていく流れを紹介します。
手順2:試行錯誤
手順1でChatGPTが出力したコードを実行すると、Excelファイルには何も出力されませんでした。
素直に事象を説明して、コードを修正してもらいました。
修正版のコードを実行しても、Excelファイルには何も出力されませんでした。
もう一工夫必要なようです。
スクレイピングの場合は、サイト構造のうち、使えそうな指定方法を探すのに試行錯誤が必要です。
この辺りは自分でもサイト構造を解析しながら、どのように修正すればよいのか一緒に検討する必要がありました。
何回か試行錯誤を繰り返すうちに、検索結果が取れるようになりました。
ただ、出力されたExcelファイルを見ると、以下のように検索結果のページにアクセスできないなどの問題が発生しました。
詳細は省略しますが、追加で何回か試行錯誤を繰り返すことで、やりたいことを実現するコードを作成できました。
参考までに私が追加で修正依頼した内容は以下のとおりです。
- 文字コードをutf-8に統一して
- urlの末尾の%以降は除外して処理して
- 重複したサイトは除外して上位10サイトの検索結果を出力して
- 検索結果からGoogleのページは除外して
最終的にChatGPTが生成したコードをそのまま実行するだけで、以下のようなExcelを出力できました。
ここまで紹介したように、修正して欲しいことを指示して試行錯誤を繰り返すことで、やりたいことを実現するコードが作成できました。
Aを直してBを直したら、またAが動かなくなった。
というようなドツボにハマると抜け出せなくなります。
コードの修正を依頼するときも、どこをどのように変えればよいのか具体的に指示するのがポイントです。
【参考】最初の指示があいまいだと試行錯誤で挫折する
手順1、手順2では、ChatGPTを使ってスクレイピングコードを生成した成功例を紹介しました。
実は、失敗例もあります。
私が最初に試したときの指示文は以下のとおりです。
以下を自動化するPythonコードを教えて
①googleで「ブログ 稼ぎ方」を検索する
②上位10サイトのURL、タイトル、H2、H3見出しを取得して、Excelに出力する
ChatGPTの実行結果は、以下のとおりです。
このコードを実行すると、以下のエラーになりました。
例外が発生しました: AttributeError
'WebDriver' object has no attribute 'find_elements_by_css_selector'
エラーの原因は、ChatGPTが出力したコードがSelenium4に対応していなかったためです。
Selenium4に直して、と具体的に指示をしたところ、修正してくれました。
しかし、手順2で紹介したときと同じように、要素がうまく取得できずにエラーになりました。
エラーが出たことを伝えるとコードは修正してくれました。
ただ、修正したコードがSelenium3のコードに戻っていることもあり、試行錯誤がうまくいかずに挫折しました。
このやり取りがうまくいかなかった原因は、ChatGPTが最初に出力したコードが良くなかったためだと考えています。
ChatGPTでプログラミングをするときは、最初の指示文をなるべく具体的にして、最初からある程度完成度が高いプログラムを生成してもらうことがポイントです。
その他、私が今回の試行錯誤をとおして感じた、ChatGPTを使ってプログラミングするときのポイントについては、次の章で紹介します。
ChatGPTを使ってプログラミングするときのポイント
今回の私の体験談をとおして感じた、ChatGPTを使ってプログラミングするときのポイントを紹介します。
ChatGPTを使ってプログラミングするときは、以下の点を意識するのがおすすめです。
- 処理の流れを具体的に指示する
- エラー修正はエラーメッセージを出して依頼する
- 修正方針が決まっているときは方針も伝える
それぞれについて具体的に紹介します。
処理の流れを具体的に指示する
ChatGPTでプログラミングをするときは、処理の流れを具体的に指示しましょう。
例えば、以下のようなあいまいな処理をすると、ロジックが分かりにくいコードが生成されることがあります。
以下のように、処理の流れをイメージできるような具体的な指示を出すのがポイントです。
エンジニアの人なら、設計書に書くレベルの内容を指示するのがよい、と思えばイメージしやすいと思います。
最初からある程度完成度が高いプログラムが生成できるような指示文を書くのがポイントです。
あれこれ試行錯誤してうまい指示文の書き方のコツをつかんでみましょう。
エラー修正はエラーメッセージを出して依頼する
ChatGPTにエラー修正をお願いするときは、エラーメッセージを出して依頼しましょう。
と言ってもある程度は修正してくれるのですが、
と指示するほうが、有効な修正コードを作成してくれる可能性が高いです。
エラーメッセージを伝えると、エラーの原因を分析して直してくれるところがすごいと思いました。
エンジニアの人であれば、自分で作成したコードでエラーが出て困ったときにも使えます。
ChatGPTを使って、効率的にエラー修正してみましょう。
修正方針が決まっているときは方針も伝える
ChatGPTを作成したコードを修正していく中で、修正方針が決まっているものがあれば、それを伝えるようにしましょう。
たとえば、エラーの原因が分かっている場合は、どこをどう直してほしいのかを伝えるとその通りに直してくれます。
やりたいことから離れているなと感じたら早めに軌道修正しないと、私のように途中で挫折しています。
ChatGPTを一緒にプログラムを完成させていくという意識を持って取り組みましょう。
【Python】ChatGPTにスクレイピングコードを書かせてみた まとめ
今回は、ChatGPTを使ってスクレイピングコードを作成した体験談を紹介しました。
ChatGPTを使って、Googleの検索結果から上位サイトのデータを取集するスクレイピングコードを作成できました。
ただし、ChatGPTを使ってプログラミングするには試行錯誤が必要です。
以下のポイントを意識して、ChatGPTと一緒にプログラミングしていく意識で取り組みましょう。
- 処理の流れを具体的に指示する
- エラー修正はエラーメッセージを出して依頼する
- 修正方針が決まっているときは方針も伝える
コメント