メインコンテンツへスキップ

Check::BackLink - リンクデータベースからリンクの存在を確認

スクレイパーの概要

スクレイパーの概要:動作速度

このスクレイパーは、バックリンク(backlinks)、つまり自サイトにリンクしているサイトのページ上のリンクを確認することができます。

A-Parserの機能により、スクレイピング設定を後で利用するために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。

内蔵された強力なテンプレートエンジン Template Toolkit により、結果にさらなるロジックを適用し、JSON、SQL、CSVを含む様々なフォーマットで、必要な形式と構造で結果を保存できます。

スクレイパーのユースケース

収集データ

  • ページ上の外部リンクと内部リンクの合計数
  • 指定されたページにリンクが存在するか確認(0 または 1
    • 0 - バックリンクの完全一致がないことを意味します
    • 1 - バックリンクの完全一致があることを意味します
  • robots.txt による指定ページの閲覧ブロック確認 - 0 または 1
  • robotsメタタグnoindex 属性によるページインデックスのブロック、および nofollow 属性によるリンク遷移のブロック確認
  • rel=nofollow 属性によるリンク遷移のブロック確認

取得可能な追加データ:

  • ページ上の外部リンクと内部リンクの数
  • ページ上のすべての外部リンクと内部リンクのリスト

機能

  • 指定されたページ上のリンクの存在を確認。スキームを指定せずに文字列の含有によるリンク検索も可能
  • robots.txt を通じてページがインデックス拒否されているか確認
  • robotsメタタグnoindex および nofollow 属性があるか確認
  • 見つかったリンクに rel=nofollow があるか確認
  • 文字列の含有によるリンク検索
  • 独自の User-Agent ヘッダーを指定可能

利用シーン

  • 指定したページに自分のリンクが掲載されているかの確認
  • 特定の User-Agent(例:Googleボット)にのみ表示されるリンクの検索

クエリ

クエリとして、リンクを探すページを指定し、スペースを空けて検索対象のリンクを指定する必要があります:

https://fishki.net/ https://lenta.ru/news/2020/12/18/lavina/
https://en.wikipedia.org/wiki/Moscow https://lenta.ru/news/2005/12/23/city/
http://soccerjerseys.in.net/ https://lenta.ru/news/2012/03/12/homeless/
https://tjournal.ru/ https://lenta.ru/articles/2016/02/15/deathlab/

クエリの置換

内蔵マクロを使用して、ファイルからサブクエリを自動的に挿入できます。例えば、ページリストに基づいてサイトを確認したい場合、リンクを探すページのリストを指定します:

https://fishki.net/
https://en.wikipedia.org/wiki/Moscow
http://soccerjerseys.in.net/
https://tjournal.ru/

クエリ形式で、ファイル backlinks.txt から追加クエリを挿入するマクロを指定します。この方法により、サイトのデータベースに対してファイル内のリンクパスのリストが存在するか確認できます:

$query {subs:backlinks}

このマクロは、元の各検索クエリに対してファイル内にある数と同じだけの追加クエリを作成します。結果として、マクロの動作により [元のクエリ数(ページへのリンク)] x [backlinksファイル内のクエリ数] = [総クエリ数] となります。

また、クエリ形式にプロトコルを指定して、ドメインのみをクエリとして使用することも可能です:

http://$query 

この形式は、各クエリの前に http:// を付加します。

結果の出力例

A-Parserは、内蔵のテンプレートエンジン Template Toolkit により柔軟な結果フォーマットをサポートしており、任意の形式やCSV、JSONなどの構造化された形式で結果を出力できます。

デフォルト出力

結果フォーマット:

$backlink - $checklink: $exists, blocked by robots.txt: $robots\n

バックリンク、検索が行われたページへのリンク、バックリンクの有無、およびrobots.txtでのブロック確認が表示される結果の例:

http://soccerjerseys.in.net/ - https://lenta.ru/news/2012/03/12/homeless/: 1, blocked by robots.txt: 0
https://tjournal.ru/ - https://lenta.ru/articles/2016/02/15/deathlab/: 0, blocked by robots.txt: 0
https://en.wikipedia.org/wiki/Moscow - https://lenta.ru/news/2005/12/23/city/: 0, blocked by robots.txt: 0
https://fishki.net/ - https://lenta.ru/news/2020/12/18/lavina/: 0, blocked by robots.txt: 0

バックリンクの有無と分析用追加パラメータをCSVテーブルに出力

内蔵ユーティリティ $tools.CSVLine を使用すると、ExcelやGoogleスプレッドシートにインポート可能な正しいテーブルドキュメントを作成できます。

変数 $actualchecklink の結果は、ページにバックリンクが存在する場合のみ取得され、存在しない場合は none となります。 $actualbacklink$actualchecklink はリダイレクト後の実際のリンクです。

結果フォーマット:

[% tools.CSVline(backlink, checklink, anchor, nofollow, noindex, redirect, exists, robots, actualbacklink, actualchecklink, intcount, extcount) %]

ファイル名:

$datefile.format().csv

初期テキスト:

Backlink,Checklink,Anchor,Nofollow,Noindex,Redirect,Exists,Robots,Actualbacklink,Actualchecklink,Intlinks count,Extlinks count

結果の例:

https://tjournal.ru/,https://lenta.ru/articles/2016/02/15/deathlab/,none,0,0,0,0,0,https://tjournal.ru/,none,112,37
https://fishki.net/,https://lenta.ru/news/2020/12/18/lavina/,none,0,0,0,0,0,https://fishki.net/,none,966,31
http://soccerjerseys.in.net/,https://lenta.ru/news/2012/03/12/homeless/,"get more information",0,0,0,1,0,http://soccerjerseys.in.net/,https://lenta.ru/news/2012/03/12/homeless/,89,20
https://en.wikipedia.org/wiki/Moscow,https://lenta.ru/news/2005/12/23/city/,none,0,0,0,0,0,https://en.wikipedia.org/wiki/Moscow,none,2733,598
...
サンプルをダウンロード

A-Parserへのプリセットインポート方法

eJx9VE1v4jAQ/SuR1UqtRGOg6mqVG6AidUWhS9u9UA5uMgE3jp21HaBC/Pcd5xPK
7t484zdvxjNvvCeWmcQ8aTBgDQkWe5IVZxKQ+x1LMwFeuIYw8d5ZmAguE+OxKPIy
plkKFrQhHYKGcadgsSAjBw6CIaIniMbbCGKWC0uWyw5BajyasdIpcykWlzeeVUoY
f/T8C9nhKuv5daaOh0aRvLGYDNdKF0epYiWE2lYGlxHsirOGiGsIbWHAjhtrSr96
V9WRhTZn4iRP6TrNxqUNVS5rptK49m4ul6R5yjPbwIvCp8RcQOseozXFDuHFRcQs
uFs/Lp59de3bnUUo9pFbriQTZT9cA9sevUr+O3fxUiEWj5qDGWuVostCQeCcn3Uv
F+SisAlS5EXszzKGBDETBjrEYKljhoVEX284DpJZpWeZqwf9e6LkQIgJbEC0sIJ/
mHMR4bQHMQY9VIF/h8zOOA7N845TbUBvNdbQsBTWcPbYRkVqolZ1MwRPuUXbjNxA
0NtFZwKQNT2bOliqNDRprM6hSY5yz0BGCBzWGhg1kx+UGpvW+ppW2prXurovNTUv
9TQ41dLgi44epC23plTS/e7YfJOtYgZZVRL50sUTVZw6QyVjvpph/zSPoEbm8gV3
eiZHyq2va6vMhUBVGJi36hyYSgXOaDp/FjwqUmBZ9Rp3SLGwP57LUjPNUf13rsAU
B3mctaIMmRCv88nxDWkVjcba2swElMbcrBPuS7DUq30CpGW+zqmEraH9br9Le33a
+04F23DJ6JuskSD9LU94hlNivtIr6iz6qEyotv+k6945uv4tDbn9rMgQZlQYgv7A
PsOnwW/g/zUhQ/fW8axVCgKMOarKfqhc44Y7+DkB05aHGOFIvtEuPuyORsDsWrB3
SlzrLKwU7jQO9rBsPtrmt96ffbfB/oDb8mGeSqSbrcOhD0VicBVI0Dv8AQ3PGZI=

ヒント

結果フォーマットには Template Toolkit テンプレートエンジン が使用されます。

結果フォーマットとは

結果ファイル名で、ファイルの拡張子を csv に変更するだけです。

タスクエディタで「Prepend text」オプションを表示するには、「More options」を有効にする必要があります。 「Prepend text」にカラム名をカンマ区切りで入力し、2行目を空行にします。

バックリンクページからの外部リンクのダンプ(JSON形式)

結果フォーマット:

[% data = {}; 
data.query = query; data.links = [];
FOREACH item IN extlinks;
data.links.push(item.link);
END;
IF !firstString;
",\n";
ELSE;
firstString = 0;
END;
data.json %]

初期テキスト:

[% firstString = 1 %][

終了テキスト:

]

結果の例:

[{"query":"https://tjournal.ru/ https://lenta.ru/articles/2016/02/15/deathlab/","links":["https://vc.ru/job","https://vc.ru/job/new","https://vc.ru/job","https://twitter.com/aktroitsky","https://twitter.com/aktroitsky/statuses/1382294384931188748","https://twitter.com/aktroitsky/statuses/1382294384931188748","https://t.co/fD4AiCpbrV","https://twitter.com/aktroitsky/statuses/1382294384931188748"]}]

結果の処理

A-Parserではスクレイピング中に直接結果を処理できます。このセクションでは、Check::BackLinkスクレイパーで最も一般的なケースを紹介します。

フィルタを追加し、ドロップダウンリストから変数 $exists - Link exists を選択します。タイプを String equal に設定します。次に、String (文字列)フィールドにバックリンクが存在することを示す値 1 を入力します。このフィルタにより、バックリンクが存在するすべての結果を出力できます。

Result Builders (結果コンストラクター)を追加し、ドロップダウンリストからソース $p1.extlinks.$i.link - Link を選択します。タイプを Extract Top Domain に設定します。これにより、外部リンクからドメインを取得できます。

フィルタと結果コンストラクターの使用例
サンプルをダウンロード

A-Parserへのプリセットインポート方法

eJx9VNtuGjEQ/RVkIaWR6C4Qpar2jdAgpSIhJeSJ5MHZHcDBa29sLxch/r0z3hsp
bd88M2fO3H1gjtu1fTRgwVkWzQ8s828WsdsdTzMJrXgF8br1xuO1FGptW7AT1tnW
6G48u52yDsu4sWDIec6GhI2iGwSPEYzWBBY8l451DsztM0DehZAODJowEFkiVjCi
pjDNChx85FyicsNlTnIP3zpzQisULCjLjg2p3oAxIgHEiISCaJNyV0ZoONqwc76K
oAB8uWhXhbW+ttq+1Eoo68QXaV5e1MUlO76+VnnbkWcg0qwXlF2rjU98AzNdVAuN
eoTSA099Kgl3QNYqlcvA7YiBJ4mgKrksIlBnm6jPSnz4UpRGLD6NADsyOkWVA09A
yn2V3Zy1vcyQIve+vwofFi24tNBhFlMdcUwk+dMicBjcaTPxXUf9gWk1kHIMG5AN
zPPf5EImuAaDBTrdlY5/h0zOOI51eaehcKRbgznULF66mdw3Xoke62XVDClS4VC2
Q50rGkwXlWuArO7ZA8FSbaAO40wOdXA8gwwUrU8zsUHWqD5V8WkqJ8oDszo3MYab
dztzVi2czw8vghao3Fk0GR67mc5+6JQLRbM3hu8LU+XlaIu86xFdY60WYjkpt71K
IlczPOOJGmq6WOqYyqXEgVuYNos3sOWASaibeuY89CEwaH26mIOW9udT0YXMCEzp
mmpPcUanUUvKmEv5PB2fWlizrCisnMtsFIYLYVdrEShwYavSSVCOByYPFWxt2O/2
u2GvH/a+h5JvhOLhi6qQoIKtWIsMEsEDbZYhSeG9trHe/pOue010/aswFm5fkiHM
6jgG844jhL0NhPp/TsjQvSKelU5BgrUnWbl3HD8eL8HPCbhxIkYPIvkWdrGw6zAB
7laSv4WMWudgqfFccbA07/JzrT/ow9kXGx2OeAjv9rFA0mwJhzpcEut/y97xN4Qy
DUs=
ヒント

結果コンストラクターは必要な数だけ追加できます。

参照:

設定可能な項目

スクレイパー HTML::LinkExtractorHTML::LinkExtractor のすべての設定に加えて、以下をサポートしています:

パラメータ名デフォルト値説明
Check robots.txtrobots.txt によるページのインデックス拒否を確認するかどうかを指定します
Match link by substring文字列の含有によるリンク検索を行うかどうかを指定します。httpプロトコルを指定しないドメインのみなど、スキームなしでリンクを確認できます