PR

【Python】ChatGPTにスクレイピングコードを書かせてみた

AI活用
スポンサーリンク
この記事にはプロモーションが含まれています。

ChatGPTとは、文章作成やプログラミング作成といったことができるAIです。
2023年3月にはGPT-4という新しいバージョンがリリースされ、今注目を集めているAIのひとつです。

ChatGPTではプログラミングコードも生成できます。

ぽむ
ぽむ

私は現役のシステムエンジニアです。
本業でもプログラミングはしますが、Pythonを使ってデータ収集などのプログラミング副業にもチャレンジしています。

今回は、ChatGPTを使ってスクレイピングコードを自動生成できるか試してみました。

結論から言えば、ChatGPTで、Googleの検索結果から上位サイトのデータを取集するスクレイピングコードを作成できました。

試行錯誤は必要ですが、ChatGPTが作ったものをそのまま実行して、やりたいことを実現できるコードを作成することができました。

私が試行錯誤した内容については、記事の中で紹介します。

ちなみに、スクレイピング技術は便利ですが、サイトによってはスクレイピングが禁止されている場合もあります。

スクレイピングによるデータ収集を行うときは、対象サイトがスクレイピングを禁止していないかよく確認してください。

プログラミング副業を始めるなら、クラウドワークスのようなクラウドソーシングサービスを利用するのがおすすめです。

また、本格的にプログラミング副業をしたい人は、ITプロパートナーズという、週2日から取り組めるIT系の案件が充実したクラウドソージングサイトもあります。

私がプログラミング副業にチャレンジした体験談も紹介しているので、ぜひ参考にしてみてください。

スポンサーリンク

【体験談】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のコードを出力してくれました。

ChatGPTは実行するたびに違う結果を返すことがあるため、同じ指示文を実行しても、必ずしも同じ結果になりません。

同じ指示をしても、この記事で紹介している内容と同じ結果にならない可能性がある点に注意してください。

1回でやりたいことが実現できるコードを生成できれば良いのですが、そううまくはいきませんでした。

以下では、このコードを修正していくことで、やりたいことを実現するプログラムに仕上げていく流れを紹介します。

手順2:試行錯誤

手順1でChatGPTが出力したコードを実行すると、Excelファイルには何も出力されませんでした。

今回はスクレイピングコードの解説が目的ではないため、詳しくは触れません。

結論だけ言えば、検索結果の上位10サイトを取得するための条件が間違っているため、正しい指定方法に修正する必要がありました。

素直に事象を説明して、コードを修正してもらいました。

修正版のコードを実行しても、Excelファイルには何も出力されませんでした。

もう一工夫必要なようです。

スクレイピングの場合は、サイト構造のうち、使えそうな指定方法を探すのに試行錯誤が必要です。
この辺りは自分でもサイト構造を解析しながら、どのように修正すればよいのか一緒に検討する必要がありました。

何回か試行錯誤を繰り返すうちに、検索結果が取れるようになりました。

今回試したGoogleの検索結果の場合は、ChatGPTがサイト構造を把握してコードを修正してくれましたが、対象サイトによってはそこまでうまくいかないこともあります。

ぽむ
ぽむ

実は、あるサイトのスクレイピングコードをChatGPTに作ってもらったところ、クラス属性がデタラメなコードを返されて、悲しくなった経験もあります。

冒頭でも紹介したとおり、スクレイピングが禁止されているサイトもあるため、注意が必要です。ChatGPTを使えば何でも作れると誤解しないでくださいね。

ただ、出力されたExcelファイルを見ると、以下のように検索結果のページにアクセスできないなどの問題が発生しました。

詳細は省略しますが、追加で何回か試行錯誤を繰り返すことで、やりたいことを実現するコードを作成できました。

参考までに私が追加で修正依頼した内容は以下のとおりです。

  • 文字コードをutf-8に統一して
  • urlの末尾の%以降は除外して処理して
  • 重複したサイトは除外して上位10サイトの検索結果を出力して
  • 検索結果からGoogleのページは除外して

最終的にChatGPTが生成したコードをそのまま実行するだけで、以下のようなExcelを出力できました。

ここまで紹介したように、修正して欲しいことを指示して試行錯誤を繰り返すことで、やりたいことを実現するコードが作成できました。

ただ、修正を依頼するたびに既存のコードが書き換わってしまうこともあります。

ぽむ
ぽむ

Aを直してBを直したら、またAが動かなくなった。
というようなドツボにハマると抜け出せなくなります。

コードの修正を依頼するときも、どこをどのように変えればよいのか具体的に指示するのがポイントです。

【参考】最初の指示があいまいだと試行錯誤で挫折する

手順1、手順2では、ChatGPTを使ってスクレイピングコードを生成した成功例を紹介しました。

ぽむ
ぽむ

実は、失敗例もあります。

私が最初に試したときは、Seleniumを使ったスクレイピングコードが生成されました。
Seleniumのバージョン違いや、要素の指定方法がうまくいかないといった複数の問題が発生して、試行錯誤をしてもうまく実行できず、挫折しました。

私が最初に試したときの指示文は以下のとおりです。

以下を自動化するPythonコードを教えて
①googleで「ブログ 稼ぎ方」を検索する
②上位10サイトのURL、タイトル、H2、H3見出しを取得して、Excelに出力する

ChatGPTの実行結果は、以下のとおりです。

このコードを実行すると、以下のエラーになりました。

例外が発生しました: AttributeError
'WebDriver' object has no attribute 'find_elements_by_css_selector'

エラーの原因は、ChatGPTが出力したコードがSelenium4に対応していなかったためです。

Seleniumはバージョンによって仕様が変わっており、Selenium4からはfind_elements_by_css_selectorは使えなくなっています。

Selenium4に直して、と具体的に指示をしたところ、修正してくれました。

しかし、手順2で紹介したときと同じように、要素がうまく取得できずにエラーになりました。

エラーが出たことを伝えるとコードは修正してくれました。

ただ、修正したコードがSelenium3のコードに戻っていることもあり、試行錯誤がうまくいかずに挫折しました。

ぽむ
ぽむ

このやり取りがうまくいかなかった原因は、ChatGPTが最初に出力したコードが良くなかったためだと考えています。

ChatGPTでプログラミングをするときは、最初の指示文をなるべく具体的にして、最初からある程度完成度が高いプログラムを生成してもらうことがポイントです。

その他、私が今回の試行錯誤をとおして感じた、ChatGPTを使ってプログラミングするときのポイントについては、次の章で紹介します。

スポンサーリンク

ChatGPTを使ってプログラミングするときのポイント

今回の私の体験談をとおして感じた、ChatGPTを使ってプログラミングするときのポイントを紹介します。

ChatGPTを使ってプログラミングするときは、以下の点を意識するのがおすすめです。

  • 処理の流れを具体的に指示する
  • エラー修正はエラーメッセージを出して依頼する
  • 修正方針が決まっているときは方針も伝える

それぞれについて具体的に紹介します。

処理の流れを具体的に指示する

ChatGPTでプログラミングをするときは、処理の流れを具体的に指示しましょう。

例えば、以下のようなあいまいな処理をすると、ロジックが分かりにくいコードが生成されることがあります。

Googleの上位10サイトからタイトルと見出しを抽出する処理をプログラミングして

以下のように、処理の流れをイメージできるような具体的な指示を出すのがポイントです。

Pythonで以下を実現するコードを作成してください。
1.Googleで「ブログ 稼ぎ方」と検索する
2.上位10サイトに対して以下の処理を行う
 2-1.サイトにアクセスする
 2-2.サイトタイトル、URL、H2タグ、H3タグを取得する
 2-3.Google検索結果に戻る
3.2で取得した10サイト分のデータをExcelに出力する

ぽむ
ぽむ

エンジニアの人なら、設計書に書くレベルの内容を指示するのがよい、と思えばイメージしやすいと思います。

最初からある程度完成度が高いプログラムが生成できるような指示文を書くのがポイントです。
あれこれ試行錯誤してうまい指示文の書き方のコツをつかんでみましょう。

エラー修正はエラーメッセージを出して依頼する

ChatGPTにエラー修正をお願いするときは、エラーメッセージを出して依頼しましょう。

実行したらエラーになった。修正して

と言ってもある程度は修正してくれるのですが、

実行したら「△△」の箇所で「〇〇」というエラーになった。修正して

と指示するほうが、有効な修正コードを作成してくれる可能性が高いです。

ぽむ
ぽむ

エラーメッセージを伝えると、エラーの原因を分析して直してくれるところがすごいと思いました。

ChatGPTは、インプットとなるプログラムコードと、どこでどんなエラーが出るか伝えれば答えを返してくれます。

エンジニアの人であれば、自分で作成したコードでエラーが出て困ったときにも使えます。
ChatGPTを使って、効率的にエラー修正してみましょう。

修正方針が決まっているときは方針も伝える

ChatGPTを作成したコードを修正していく中で、修正方針が決まっているものがあれば、それを伝えるようにしましょう。

たとえば、エラーの原因が分かっている場合は、どこをどう直してほしいのかを伝えるとその通りに直してくれます。

ChatGPTに丸投げしていると、コードを修正するたびに方向性が変わってしまうことがあります。

ぽむ
ぽむ

やりたいことから離れているなと感じたら早めに軌道修正しないと、私のように途中で挫折しています。

ChatGPTを一緒にプログラムを完成させていくという意識を持って取り組みましょう。

スポンサーリンク

【Python】ChatGPTにスクレイピングコードを書かせてみた まとめ

今回は、ChatGPTを使ってスクレイピングコードを作成した体験談を紹介しました。

ChatGPTを使って、Googleの検索結果から上位サイトのデータを取集するスクレイピングコードを作成できました。

ただし、ChatGPTを使ってプログラミングするには試行錯誤が必要です。
以下のポイントを意識して、ChatGPTと一緒にプログラミングしていく意識で取り組みましょう。

  • 処理の流れを具体的に指示する
  • エラー修正はエラーメッセージを出して依頼する
  • 修正方針が決まっているときは方針も伝える
AIについて学ぶなら書籍がおすすめです
¥1,375 (2023/03/04 19:05時点 | Amazon調べ)
\楽天ポイント4倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング

また、Amazonが提供する Kindle Unlimitedは、200万冊以上のビジネス書、小説、マンガが読み放題です。
上で紹介したAIの本も読み放題対象です。

月額980円で利用できるお得なサービスなので、気になる人は以下よりチェックしてみてください。

初回30日間無料体験

コメント

タイトルとURLをコピーしました