グーグルの検索結果ページ(SERP)をスクレイピングする方法

ハウツー, スクレイピング, 8月 -0220215分で読める

グーグルが世界中の人々の検索関連クエリに広く使われているプラットフォームであることは、説明するまでもないだろう。Statistaのウェブサイトによると、世界の検索市場におけるグーグルのシェアは87.35%。さらに、統計によると、グーグルの年間ユーザー数は2兆人を超え、130兆以上のページをインデックスしている。 これらの統計は、グーグルが

グーグルが世界中の人々の検索関連クエリに広く使われているプラットフォームであることは、説明するまでもないだろう。Statistaのウェブサイトによると、世界の検索市場におけるグーグルのシェアは87.35%。さらに、統計によると、グーグルの年間ユーザー数は2兆人を超え、130兆以上のページをインデックスしている。 

これらの統計は、GoogleがSERPに関する包括的な公開データを持っていることを証明しており、インターネットマーケッターやその他の人々にとっても貴重なものである。そのため、SERPをスクレイピングすることは、インターネットマーケッターの間で優先事項となっている。しかし、リクエスト数が一定量を超えると、GoogleはあなたのIPアドレスをブロックする。

そこでこの記事では、ブロックされずにSERPをスクレイピングする方法について掘り下げていく。その前に、ウェブスクレイピングの基本について説明する。

ウェブスクレイピングとは何か?

複数のウェブページから大量のデータをコピーする必要があるとしよう。最初は、内容をコピーしてスプレッドシートに貼り付けたくなるかもしれません。しかし、大きなウェブ文書なので、手作業でデータを抽出するのは時間がかかる。そのため、スクレイピング・プロセスを自動化する必要がある。

データをスクレイピングするこの自動化プロセスは、ウェブスクレイピングとして知られている。この方法では、ブラウザにウェブサイトのURLを入力することなく、HTMLソースをダウンロードすることができる。

ウェブスクレイピングに関する詳しい情報は、こちらをご覧ください。 

検索エンジン結果ページ(SERP)のスクレイピングとは?

ウェブスクレイピングと同じように、スクレイピングSERPは、一連のキーワードのGoogle検索からトップ10またはそれ以上の結果を抽出するプロセスです。ほとんどの検索エンジン最適化(SEO)会社は、ターゲットとするキーワードでのクライアントのウェブサイトの順位を追跡するために、この手法を採用しています。 

SERPSのためにスクレイピングを行う理由は、広告検証リードジェネレーションコンテンツアグリゲーションなど、他にも考えられる。

通常、SERPのスクレイピングを実行するための自動化ツールがある。あるいは、Pythonのようなプログラミング言語を使って独自のスクリプトを作成することもできる。ただし、コーディングに自信があり、より高度な技術的専門知識を持っている場合に限ります。さらに、Google SERPをスクレイピングするためにcURLを使うこともできる。

これらのツールは、関連するウェブページからデータをスクレイピングすると、データベース、CSVファイル、XML、またはJSONファイルに保存する。これらのデータは、SEOの取り組みが正しく機能しているかどうかを判断できる構造化された形式になっている。なぜなら、時間の経過とともにページの掲載順位を見ることができるからだ。

また、SERPはテキストコンテンツだけでなく、画像、動画、フィーチャードスニペット、ローカル検索マップなど、さまざまなコンテンツで構成されている。

次のセクションでは、SERPからスクレイピングすることの重要な利点を発見するだろう。

SERPのスクレイピングは、ハッカーによる被害をどのように回復させるのか?

ハッキングされることは、常にあなたに悪影響を及ぼすものです。ハッキングされたウェブサイトとそのログイン認証情報は、ダークウェブに流れてしまうかもしれません。ハッカーはバックリンクを売ったり、ダークウェブのマルウェアをあなたのサイトで実行する可能性さえある。同様に、ハッキングはSEOの文脈にも悪影響を及ぼします。

GoogleのSERPをスクレイピングすることの重要な利点の一つは、ハッカーが引き起こすであろう潜在的な損害を特定する能力である。SERPsでSEOランキングを達成するために懸命に努力しているとき、ハッカーは簡単にセキュリティ設定に侵入し、すべてのSEOの努力を台無しにすることができます。 

ハッカーがどのようにSEOの取り組みを乗っ取るかについての包括的な詳細は、こちらをご覧ください。

ある調査によると、SEOプロフェッショナルの48%が、SERFの結果を元の状態に戻すのにGoogleは何ヶ月もかかったと回答している。 

あなたのウェブサイトのSERPを追跡することは、あなたのランキングに何が起こっているかについて有益な洞察を提供します。また、ハッキングされた際のランキングの潜在的な結果を判断するのにも役立ちます。そのため、Googleに以前の順位に戻すよう迅速に要請することができます。その結果、サイトのダウンタイムや検索エンジンの順位下落を最小限に抑えることができます。

一方、あなたのウェブサイトがマルウェアに感染している場合、検索エンジンのランキングに悪影響を及ぼす。あなたのサイトもブラックリストに載る可能性が高くなります。Godaddyによると、これは中小企業のウェブサイトではより顕著です。Godaddyのサイトの90%はマルウェアに感染していることを知りませんでした。

そのため、すべてのSERPを継続的にスクレイピングすることで、潜在的なハッキングの試みを事前に発見することができ、Googleが結果を復元するのに役立ちます。

グーグルの検索結果をスクレイピングするには?

先に述べたように、グーグルのSERPをスクレイピングする方法はいくつかある。このセクションでは、それを行うことができるいくつかの方法を発見するでしょう。

ビジュアル・ウェブ・スクレーパー

オクトパース

GoogleのSERPをスクレイピングするための一般的なウェブスクレイパーツールです。SERPのスクレイピングだけでなく、Googleマップのデータのスクレイピングも得意です。

Octoparseの重要な特徴のひとつは、ターゲットウェブサイトによるスクレイピング対策を巧妙に回避することです。また、ビジュアル・スクレイピング・ツールを使うのにプログラマーである必要はない。クラウドベースのソリューションとしても、インストール可能なソフトウェアとしても利用可能で、使い勝手はかなり良い。

Octoparseについての詳しい情報はこちらをご覧ください。

ブラウザ拡張機能

ウェブスクレイパー.io 

Webscraper.ioは、Google Chromeウェブブラウザ用の無料の拡張機能です。GoogleのウェブページからHTMLとCSSの形式でデータを抽出することができる。また、データをCSV形式でエクスポートすることもできる。ブラウザの拡張機能バージョンは完全に無料であり、スクレイピング活動を管理するには十分である。クラウドベースのオプションを利用する場合は、費用が発生する。

また、Googleマップを抽出してデータベースに変換することもできます。この拡張機能についての詳細はこちらをご覧ください。

グーグル検索API

Googleが検索エンジンからデータを抽出する公式な方法を提供していることをご存知だろうか?下記のように制限はありますが、SERPデータを必要とする人なら誰でも利用できます。以下はその制限事項である:

  • ビジュアル・ウェブ・スクレイパー、ブラウザ拡張機能、その他のウェブ・スクレイピング・ツールに比べると、提供される情報は限られている。
  • グーグルは、単一のウェブサイトまたは少数のウェブサイトを検索することを意図して開発した。しかし、ワールド・ワイド・ウェブ(WWW)全体を検索するように設定することも可能であり、そのためには十分な技術的専門知識が必要となる。
  • 大量のリクエストを送るには莫大な費用がかかるからだ。

そのため、Google検索APIはその制限とコストから、SERPsの結果をスクレイピングするための理想的なプラットフォームではない。この記事で紹介した別の方法を取る方が良いに決まっている。

Python、リクエスト、BeautifulSoupを使う

Pythonを使ったコーディングのエキスパートであれば、この方法は便利だろう。まず間違いなくコストを削減できるし、よりコントロールしやすくなる。

このプログラムでは、"How to learn Python "という検索クエリに対するSERPを抽出する。物事を簡単にするために、検索クエリをハードコードします。そして結果セットを取り出した後、結果のタイトルを表示します。さあ、始めましょう。

import requests from bs4 import BeautifulSoup import random text = 'How to learn Python programming' url = 'https://google.com/search?q=' + text useragent = ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36" ) Agent = useragent[random.randrange(len(useragent))] headers = {'user-agent': Agent} req = requests.get(url, headers=headers) soup = BeautifulSoup(req.text, 'lxml') for info in soup.find_all('h3'): print(info.text) print('__________')

ここでは、各コード行をわかりやすく説明する:

輸入リクエスト

Pythonのリクエスト・ライブラリを使ってSERPをダウンロードする。そしてリクエストモジュールはGoogleサーバーにgetリクエストを送る。これにより、プログラムはSERPのHTMLコンテンツをダウンロードすることができる。

from bs4 import BeautifulSoup

そして、次の行は自明で、BeautifulSoupライブラリをロードする。このライブラリーはHTMLとXMLドキュメントのパースを可能にする。

text = 'Pythonプログラミングの学び方' url = 'https://google.com/search?q=' + テキスト

このコードでは、データをスクレイピングする検索エンジンのURLを設定します。そこで、URLをgoogle.comとし、検索クエリとしてtext変数にある'How to learn Python programming'というテキストを追加しています。

useragent = ("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36" )

      

次に、上記のコードでユーザー・エージェント文字列を設定する。

req = requests.get(url, headers=headers)

上記のコードは、リクエストされた検索結果のHTMLコンテンツをダウンロードするために、ウェブサーバーにリクエストを送信する。

soup = BeautifulSoup(req.text, 'lxml')

上記のコードが'lxml'ヘッダーの解析から要求したデータでBeautifulSoupのインスタンスを作成する。上記のコードを動作させるには、まず'lxml'パッケージをインストールする必要がある。

for info in soup.find_all('h3'): print(info.text) print('__________')

次に、forループを使って、すべてのh3タグを抽出し、タイトルを表示する。

住宅用プロキシを使ってGoogle SERPをスクレイピングする

前述したように、Googleなどの検索エンジンは、スクレイピングの制限を超えると、IPアドレスを禁止するなどの制限を課します。そこで、IPアドレスをマスキングするプロキシが重要な役割を果たします。数あるプロキシの中でも、住宅用プロキシは理想的な選択です。なぜなら、そのIPは実際の住宅所有者から発信されているからです。

しかし、最初の数SERPをスクレイピングすると、グーグルはあなたの行為が非人間的であることに気づくだろう。そして、あなたのプロキシのIPアドレスをブロックし、キャプチャに対処しなければならなくなる。

そこで、住宅用プロキシのネットワークが救世主となる。家庭用プロキシのネットワークを使うと、それぞれがユニークなIPアドレスを持つことになる。そのため、IPアドレスをローテーションすることで、SERPからスクレイピングすることができる。そうすれば、あなたの行動は検索エンジンには人間らしく見えるだろう。

住宅用プロキシについての詳しい説明は、こちらの記事を参照されたい。

GoogleのSERPをスクレイピングするために住宅用プロキシを使用する場合の法的影響

ここまでで、レジデンシャル・プロキシがどのようなもので、IP禁止を克服するためにどのように役立つのか、ご理解いただけたと思います。ここで、GoogleのSERPからスクレイピングを行う際に、多くのユーザーが軽視している重要な要素について考えてみよう。それは、レジデンシャルプロキシーの使用による法的影響である。

まず第一に、住宅用プロキシを使ってGoogleのSERPをスクレイピングすることは合法である。そう考えると、グーグルなどの検索エンジンに無制限にリクエストを送りたくなるかもしれない。そのため、膨大な数のリクエストでグーグルのサーバーに負荷をかけることになる。これは、Google SERPsのアルゴリズムに照らしても、正しい行為ではありません。

したがって、データをスクレイピングする対象のウェブサイトや検索エンジンに常に敬意を払うようにする必要がある。また、スクレイパーがターゲットの検索エンジンに敬意を払うなど、可能な限り最善のスクレイピングプラクティスを採用する必要がある。

あなたまたはあなたのプロキシプロバイダが対象のウェブサーバから苦情を受けた場合、直ちにリクエストを制限するか、スクレイピングプロセスを停止する必要があります。その苦情とは、あなたの無制限なリクエストのために、ターゲットのウェブサーバーが高負荷に見舞われているというものです。したがって、このような事実には注意する必要があります。

よくある質問

グーグルからのスクレイピングは違法か?

通常、グーグルはスクレイパーがデータをスクレイピングするのを好まない。この記事で何度も述べているように、IPアドレスを禁止することもできる。また、現在に至るまで、グーグルはデータの過剰なスクレイピングに対して何の措置も取っていない。グーグルがそのような措置を取れば、SEO業者が退路を絶たれるのは明らかだ。

結論

さて、ウェブスクレイパーがSERPからデータをスクレイピングするために使用する様々な方法について、全体的な知識を得ていただけたと思います。最後に、SERPをスクレイピングするためにどのように居住用プロキシを使用することができるかを、その法的意味合いと共に学んでいただけたと思います。

この記事がお役に立つことを願っています。