検索
ホームページバックエンド開発Python チュートリアルPython を使用して Google 検索結果をスクレイピングする

Python を使用して Google 検索結果をスクレイピングする

Google は企業や研究者向けに膨大な量のデータを保有しています。毎日 85 億件以上の検索を実行し、世界の検索エンジン市場の 91% のシェアを占めています。

ChatGPT のデビュー以来、Google データはランク追跡、競合他社の監視、リード生成などの従来の目的だけでなく、高度な LLM モデルの開発、AI モデルのトレーニング、自然言語処理の機能強化にも利用されてきました ( NLP) モデル。

しかし、Google をスクレイピングするのは誰にとっても簡単ではありません。大規模にスクレイピングするには、専門家のチームと堅牢なインフラストラクチャが必要です。

Scrape Google Search Results Using Python

この記事では、Python と BeautifulSoup を使用して Google 検索結果をスクレイピングする方法を学びます。これにより、Google のデータを大規模に活用できる独自のツールやモデルを構築できるようになります。

始めましょう!

Google 検索結果とは何ですか?

Google 検索結果は、検索バーに入力されたユーザー クエリに基づいて Google に表示されるリストです。 Google は、NLP を多用してこれらのクエリを理解し、関連する結果をユーザーに表示します。これらの結果には、最新の AI の概要、「人々も尋ねる」セクション、関連検索、ナレッジ グラフなどのオーガニック検索結果に加えて、注目のスニペットが含まれることがよくあります。これらの要素は、クエリに基づいて要約された関連情報をユーザーに提供します。

Google検索データのスクレイピングの応用

Google 検索データにはさまざまな用途があります:

  • SEO を目的としたランクとキーワード トラッカーを構築します。
  • 地元のビジネスを検索しています。
  • LLM エンジンを構築します。
  • 将来の潜在的なトレンドの爆発的なトピックを発見します。

Google のスクレイピングに Python を使用する理由

Python は、他の言語では困難であったり、成功率が低かったりする Web サイトをスクレイピングするための強力な HTTP ハンドシェイク構成を提供する、多用途で堅牢な言語です。 Web スクレイピング データでトレーニングされた AI モデルの人気が高まるにつれ、開発者コミュニティ内で Web スクレイピングのトピックにおける Python の関連性が高まり続けています。

さらに、Web スクレイピング スキルとして Python を学ぼうとしている初心者でも、そのシンプルな構文とコードの明瞭さにより、Python を簡単に理解できます。さらに、Discord、Reddit などのプラットフォームで大規模なコミュニティ サポートがあり、直面しているあらゆるレベルの問題に役立ちます。

このスケーラブルな言語は、Web スクレイピングのパフォーマンスに優れ、Scrapy、Requests、BeautifulSoup などの強力なフレームワークを提供するため、他の言語と比較して Google やその他の Web サイトのスクレイピングに優れた選択肢となります。

Python を使用して Google 検索結果をスクレイピングする

このセクションでは、最初の 10 件の Google 検索結果を取得するための基本的な Python スクリプトの作成方法を説明します。

要件

このチュートリアルに従うには、次のライブラリをインストールする必要があります:

  • リクエスト — Google 検索 URL から HTML データを取得します。

  • BeautifulSoup — HTML データを構造化フォーマットに調整します。

設定

セットアップは簡単です。 Python ファイルを作成し、必要なライブラリをインストールして開始します。

プロジェクト フォルダーで次のコマンドを実行します:

    touch scraper.py

次に、ライブラリをインストールします。

    pip install requests
    pip install beautifulsoup4

プロセス

セットアップが完了し、先に進むための準備がすべて整いました。 Python の Requests ライブラリを使用して生の HTML を抽出し、BeautifulSoup を使用してそれを洗練して必要な情報を取得します。

しかし、ここでいう「必要な情報」とは何でしょうか?

Scrape Google Search Results Using Python

フィルタリングされたデータには次の情報が含まれます:

  • タイトル
  • リンク
  • 表示リンク
  • 説明
  • 結果の位置

最初にインストールしたライブラリをscraper.pyファイルにインポートしましょう。

    from bs4 import BeautifulSoup
    import requests

次に、ターゲット URL で GET リクエストを実行し、Google から生の HTML データを取得します。

headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.361681276786'}
    url='https://www.google.com/search?q=python+tutorials&gl=us'
    response = requests.get(url,headers=headers)
    print(response.status_code)

ヘッダーを渡すことは、スクレイパーを、情報を求めて Google 検索ページにアクセスしているだけの自然なユーザーのように見せるために重要です。

上記のコードは、Google 検索リンクから HTML データを取得するのに役立ちます。ステータス コード 200 を取得した場合は、リクエストが成功したことを意味します。これで、Google 用のスクレイパー作成の最初の部分が完了しました。

次のパートでは、BeautifulSoup を使用して HTML から必要なデータを取得します。

    soup = BeautifulSoup(response.text, ‘html.parser’)

これにより、HTML 応答を解析するための BS4 オブジェクトが作成され、HTML 内を簡単に移動して、選択した要素とその中のコンテンツを見つけることができます。

この HTML を解析するには、まず Google 検索ページを調べて、検索結果の DOM の場所でどのような共通パターンが見つかるかを確認する必要があります。

Scrape Google Search Results Using Python

検査した結果、すべての検索結果はクラス g の div コンテナの下にあることがわかりました。つまり、g クラスを使用して各 div コンテナに対してループを実行して、コンテナ内の情報を取得するだけです。

コードを記述する前に、HTML からタイトル、説明、リンクの DOM の場所を見つけます。

タイトルを調べると、h3 タグ内に含まれていることがわかります。この画像から、リンクがアンカー タグの href 属性に配置されていることもわかります。

Scrape Google Search Results Using Python

表示されたリンクまたは引用リンクは cite タグ内にあります。

Scrape Google Search Results Using Python

最後に、説明は VwiC3b クラスの div コンテナ内に保存されます。

Scrape Google Search Results Using Python

これらすべてのデータ エンティティを 1 つのコード ブロックにラップします:

    touch scraper.py

オーガニック結果配列を宣言し、HTML 内の g クラスを使用してすべての要素をループし、収集したデータを配列内にプッシュしました。

このコードを実行すると、望ましい結果が得られ、ランク追跡、リード生成、Web サイトの SEO の最適化など、さまざまな目的に使用できます。

    pip install requests
    pip install beautifulsoup4

これが、基本的な Google スクレイピング スクリプトの作成方法です。

ただし、落とし穴があります。 Google によって IP がブロックされる可能性があるため、この方法に完全に依存することはできません。検索結果を大規模に収集したい場合は、プレミアムおよび非プレミアム プロキシの広大なネットワークと、これを可能にする高度な技術が必要です。そこで SERP API が活躍します!

ApiForSeo の SERP API を使用して Google をスクレイピングする

Google をスクレイピングするもう 1 つの方法は、専用の SERP API を使用することです。これらははるかに信頼性が高く、スクレイピングプロセスでブロックされることはありません。

このセクションの設定は同じですが、ApiForSeo に登録して、SERP API へのアクセスを提供する API キーを取得する必要があるだけです。

ApiForSeo から API 認証情報を取得する

Scrape Google Search Results Using Python

アカウントをアクティブ化すると、ダッシュボードにリダイレクトされ、そこで API キーを取得します。

Scrape Google Search Results Using Python

ダッシュボード自体からコードをコピーすることもできます。

検索結果をスクレイピングするためのコードをセットアップする

次に、ランダムなクエリで API リクエストを作成し、ApiForSeo SERP API を通じてデータを収集します。

    from bs4 import BeautifulSoup
    import requests

他のクエリも試すことができます。 API キーをコードに忘れずに入力してください。そうしないと、404 エラーが発生します。

ターミナルでこのコードを実行すると、すぐに結果が得られます。

    touch scraper.py

上記のデータには、タイトル、リンク、スニペット、説明、拡張サイトリンクなどの注目のスニペットなど、さまざまなポイントが含まれています。また、この API から、People also Ask For、ナレッジ グラフ、アンサー ボックスなどの高度な機能スニペットも取得できます。

結論

ビジネスの性質は急速に進化しています。現在進行中のトレンドや競合他社に関するデータにアクセスできない場合、あらゆる段階でデータに基づいた戦略的意思決定を行う新興企業に後れを取るリスクがあります。したがって、企業にとって自社の環境で何が起こっているかを理解することは非常に重要であり、Google はこの目的に最適なデータ ソースの 1 つとなります。

このチュートリアルでは、Python を使用して Google 検索結果をスクレイピングする方法を学びました。このブログが役に立ったと思われた場合は、ソーシャルメディアや他のプラットフォームで共有してください。

ありがとうございます!

以上がPython を使用して Google 検索結果をスクレイピングするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
違いを理解する:ループ用とPythonのループ中違いを理解する:ループ用とPythonのループ中May 16, 2025 am 12:17 AM

ThedifferencebetweenaforloopandawhileloopinPythonisthataforloopisusedwhenthenumberofiterationsisknowninadvance,whileawhileloopisusedwhenaconditionneedstobecheckedrepeatedlywithoutknowingthenumberofiterations.1)Forloopsareidealforiteratingoversequence

Pythonループコントロール:VSの場合 - 比較Pythonループコントロール:VSの場合 - 比較May 16, 2025 am 12:16 AM

Pythonでは、ループの場合は、反復の数がわかっている場合に適していますが、ループは反復の数が不明で、より多くの制御が必要な場合に適しています。 1)ループの場合は、簡潔なコードとPythonicコードを使用して、リスト、文字列などのトラバーシーケンスに適しています。 2)条件に応じてループを制御する必要がある場合やユーザーの入力を待つ必要がある場合、ループがより適切ですが、無限のループを避けるために注意を払う必要があります。 3)パフォーマンスに関しては、FORループはわずかに高速ですが、通常、違いは大きくありません。適切なループタイプを選択すると、コードの効率と読みやすさが向上します。

Pythonの2つのリストを組み合わせる方法:5つの簡単な方法Pythonの2つのリストを組み合わせる方法:5つの簡単な方法May 16, 2025 am 12:16 AM

Pythonでは、リストを5つの方法でマージできます。1)シンプルで直感的なオペレーターを使用して、小さなリストに適しています。 2)extend()メソッドを使用して、頻繁に更新する必要があるリストに適した元のリストを直接変更します。 3)要素上でリストの分析式、簡潔、動作を使用する。 4)itertools.chain()関数を使用して効率的なメモリになり、大規模なデータセットに適しています。 5)要素をペアにする必要があるシーンに適しているように、 *演算子とzip()関数を使用します。各方法には特定の用途と利点と短所があり、選択する際にはプロジェクトの要件とパフォーマンスを考慮する必要があります。

ループvs while loop:python構文、ユースケースと例ループvs while loop:python構文、ユースケースと例May 16, 2025 am 12:14 AM

forlopseused whenthentheNumberofiterationsiskが、whileloopsareuseduntiLaconditionismet.1)forloopsareideal for sequenceslikelists、usingsintaxlike'forfruitinfruits:print(fruit) '.2)

Python ConcatenateリストのリストPython ConcatenateリストのリストMay 16, 2025 am 12:08 AM

toconcatenatealistoflistsinpython、useextend、listcomprehensions、itertools.chain、またはrecursivefunctions.1)extendistraighttraightrawardbutverbose.2)listcomprehesionsionsionsionsionsionsionsionsionsionsionsionsionsionsionsised effective forlargerdatasets.3)itertools.chainmerymery-emery-efforience-forforladatas

Pythonの融合リスト:適切な方法を選択しますPythonの融合リスト:適切な方法を選択しますMay 14, 2025 am 12:11 AM

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3の2つのリストを連結する方法は?Python 3の2つのリストを連結する方法は?May 14, 2025 am 12:09 AM

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Python Concatenateリスト文字列Python Concatenateリスト文字列May 14, 2025 am 12:08 AM

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール