web-dev-qa-db-ja.com

すべてのインデックス付きリンクのリストを取得するにはどうすればよいですか?

Googleでインデックスを作成したすべてのリンクを取得し、CSVファイルにエクスポートする方法を探しています。最近、Googleによってインデックス化されたページが実際に増えたので、各検索結果ページを表示せずに、これらすべてのページがどこから来たかを見つけたいと思っています。

8
Lee

残念ながら、Googleのすべてのインデックスページの完全なリストを取得する方法はありません。 milo5bのソリューションでさえ、最大1,000個のURLしか取得できません。

重複コンテンツの問題があるようです。ウェブマスターツールで、[ヘルス]> [インデックスステータス]をチェックすると、時間の経過とともにインデックスされたページの累積合計が表示されます。ある時点でグラフが大きく飛躍した場合、サイトの特定の変更がジャンプを引き起こした場合、解決できる可能性があります。

Bingのウェブマスターツール を使用することもできます。 URLを見つけるのに役立つIndex Explorerがあります。検索エンジンのスパイダーは非常によく似ているため、Googleがそれらのリンクを見つけた場合、Bingもおそらく見つけました。

Bingにはほとんどのデータをエクスポートする方法があると思いましたが、一見しただけでは見つけることができません。ただし、APIがあるため、おそらくそれを使用してすべてを抽出できます。

6
DisgruntledGoat

最終的に、site:domain.com/foo/bar/を検索して問題のあるサブフォルダーにドリルダウンしましたが、検索で検索結果をExcelファイルに取得する方法に出会いました。

Googleドキュメントのスプレッドシートを開き、次の式を使用します。

=importXml("www.google.com/search?q=site:domain.com&num=100&start=1"; "//cite")

最初の100件の結果しか取得できませんが、再度使用して次の100件を取得できます。開始変数を変更するだけです。

=importXml("www.google.com/search?q=site:domain.com&num=100&start=100"; "//cite")

これにより、DisgruntledGoatで前述したように、最大​​1000件の結果しか提供されませんが、特定のサブディレクトリからのリンクを提供するように式を変更できます。

= importXml( "www.google.com/search?q=site:domain.com/foo/bar/&num=100&start=1"; "// cite")

8
Lee

GoogleのSERP(たとえばPHP + Curl)を解析し、各リンクをCSVファイルに保存するスクリプトを作成できます。スクリプトを人間のように振る舞わせるよう注意してください。これを悪用すると、Googleは検索結果からあなたのIPを数時間禁止する可能性があります。

2
milo5b