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

HTML::EmailExtractor - ウェブサイトからのメールアドレススクレイピング

スクレイパーの概要

スクレイパーの概要HTML::EmailExtractorHTML::EmailExtractor は指定されたページからメールアドレスを収集します。サイトの内部ページを指定した深度まで辿ることをサポートしており、サイトの全ページを巡回して内部および外部リンクを収集できます。このメールスクレイパーには、CloudFlare の保護を回避する機能が組み込まれており、スクリプトでデータが読み込まれるページのスクレイピング用にエンジンとして Chrome を選択することも可能です。最大で毎分 250 リクエストの速度に達することができ、これは 15,000 リンクに相当します。

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

指定した深度までページを辿り、サイトからメールアドレスをスクレイピングする

指定した深度までページを辿り、サイトからメールアドレスをスクレイピングする
  1. Parse to level オプションを追加し、リストから必要な値(制限)を選択します。
  2. Queries (クエリ) セクションで、Unique queries オプションにチェックを入れます。
  3. Results (結果) セクションで、Unique string オプションにチェックを入れます。
  4. クエリとして、メールアドレスをスクレイピングしたいサイトのリンクを指定します。
サンプルをダウンロード

A-Parserにサンプルをインポートする方法

eJxtU01z2jAQ/S8aDu0MY5pDL74RJkzTIXGakBPDQYPXREWWVEmGpB7+e98Kx4Ym
N+3u2/f2S62IMuzCg6dAMYh81QqX3iIXJVWy0VGMhZM+kOfwSvxY3i3y/KaWSt+8
Ri830XpAenAr4psjpFsXlTUBMVXCTBwL2pOGZy91A8zVcb0eC+ghM8ytryXrjtxV
1hXRB5/knpYWwUppGtxzWPeyZrlRKSNxNKsS0ZevWXxlBlmWiiuR+qTAbQyqz0b9
4VJEiF6ZLfAwvaIw97aGO1IiYefbe4UrMUq2AE2T8n+dckQefUNjEVDtHAOisg9U
UgdEVCQvMbGiG07eCmumWqfBDLBEf90oXWLs0wpJt13i55DiA8ex7/Bcak/+4FFD
z5Ks6+JuyCrtwm7RuLFoW6taRdhhZhvDu/kG547I9WO7Z1htPfUyHXOnjstyZPgA
hq1N3eC6aONiM5fOjTWV2hZowKuS3pGNWeJ8CzOztdPEfZlGa2wl0ONwIdPQrYGN
ocD/k2dJ4uLwo7U6/Hw6leq8wgV+5wJrTPJctaPcSK2fHxfnETFcFIyXGF3IJ5PD
4ZDt/taBl5r5ZiI4N9LW4qjQ2XHd/7n+Z7af/7y8PWJpv8PDCc4dMhg+jCpgI/zL
/gFm02Dr

指定された制限の深さまで各サイトを巡回するサイトデータベースによるメールスクレイピング

サイトリストに基づき、各サイトを指定した深度まで辿ってメールアドレスをスクレイピングする
  1. Parse to level (指定レベルまでスクレイピング)オプションを追加し、リストから必要な値(制限)を選択します。
  2. Queries (クエリ)セクションで、Unique queriesオプションにチェックを入れます。
  3. Results (結果)セクションで、Unique stringオプションにチェックを入れます。
  4. クエリとしてメールをスクレイピングしたいサイトのリンクを指定するか、Queries from (クエリのソース)でFileを指定してサイトデータベースを含むクエリファイルをアップロードします。
サンプルをダウンロード

A-Parserにサンプルをインポートする方法

eJxtU01z2jAQ/S8aDu0MY5pDL74RJkzTIXGakBPDQYPXREWWVEmGpB7+e98Kx4Ym
N+3u2/f2S62IMuzCg6dAMYh81QqX3iIXJVWy0VGMhZM+kOfwSvxY3i3y/KaWSt+8
Ri830XpAenAr4psjpFsXlTUBMVXCTBwL2pOGZy91A8zVcb0eC+ghM8ytryXrjtxV
1hXRB5/knpYWwUppGtxzWPeyZrlRKSNxNKsS0ZevWXxlBlmWiiuR+qTAbQyqz0b9
4VJEiF6ZLfAwvaIw97aGO1IiYefbe4UrMUq2AE2T8n+dckQefUNjEVDtHAOisg9U
UgdEVCQvMbGiG07eCmumWqfBDLBEf90oXWLs0wpJt13i55DiA8ex7/Bcak/+4FFD
z5Ks6+JuyCrtwm7RuLFoW6taRdhhZhvDu/kG547I9WO7Z1htPfUyHXOnjstyZPgA
hq1N3eC6aONiM5fOjTWV2hZowKuS3pGNWeJ8CzOztdPEfZlGa2wl0ONwIdPQrYGN
ocD/k2dJ4uLwo7U6/Hw6leq8wgV+5wJrTPJctaPcSK2fHxfnETFcFIyXGF3IJ5PD
4ZDt/taBl5r5ZiI4N9LW4qjQ2XHd/7n+Z7af/7y8PWJpv8PDCc4dMhg+jCpgI/zL
/gFm02Dr

リンクデータベースによるメールスクレイピング

リンクのリストに基づきメールアドレスをスクレイピングする
  1. Queries (クエリ)セクションで、Unique queriesオプションにチェックを入れます。
  2. Results (結果)セクションで、Unique stringオプションにチェックを入れます。
  3. クエリとしてメールをスクレイピングしたいリンクを指定するか、Queries from (クエリのソース)でFileを指定してリンクデータベースを含むクエリファイルをアップロードします。
サンプルをダウンロード

A-Parserにサンプルをインポートする方法

eJxtU01z0zAQ/S+aHmAmOPTAxbc00wwwaV3a9BRyEPE6COuLXSkpePLfWTmOHZfe
tG/fvv1UI4Kkmh4QCAKJfN0I375FLkqoZNRBTISXSIDJvRafV3fLPL81Uunbl4By
Gxwy5UzebCaCBfhJC4dGJqErf511qr3zSe5h5dhZKQ0DvGDrXhpIUaUMkLxZ1Qq9
e5+Fl6Qgy1IF5azUpwypriHrs1W/Y4qngMrumM8mKqAFOsNwgFYkgX/OFa7FVWsL
lolt/LdTjMgDRpgI4moX3DGUvaOSmtijAqDkERQ+lcR4I5ydab2EPeiB1srfRKVL
nuOs4qAvXeDblOI/jWPf4WWqPeABuYZepbVuirshqnRLt+PGreO2tTIqsE1zF23a
zUcGawDfj+0+0YxD6NN0yl12PhUPtmTmsLWZH6BRG6PNjMGts5XaFdwAqhLOzGhX
fI+FnTvjNaS+bNSat0LwOFzIjLo1JGMo8HXwvE0xuuTgnKavT6dSPSq+wE+pQMOT
vMzaSW6l1s+Py0uPGC6KjZ8heMqn08PhkNV/DaWlZhin3+3Z8wMl4Bjy6Mq4DVuw
4bXLOKpZwoxRqSv5IUBNY5hMpqkVEKnUADvHN8yDPG76P9v/7Obtn5s3R76RX/Rw
oqeBJjJjvBniAxD59fEfH7B6cg==

収集データ

収集されるデータの例

  • メールアドレス
  • ページ上の総アドレス数
  • 収集されたすべてのページの配列(Use Pagesオプション使用時に利用)

機能

  • マルチページスクレイピング(ページ遷移)
  • 指定された深さまでのサイト内ページ遷移(Parse to levelオプション) – サイトの全ページを巡回し、内部および外部リンクを収集可能
  • リンクのfollow属性の判定
  • ページ遷移制限(Follow links limitオプション)
  • サブドメインをサイトの内部ページとして扱う設定が可能
  • gzip/deflate/brotli 圧縮をサポート
  • サイトの文字コードを判定し UTF-8 へ変換
  • CloudFlareの保護を回避
  • エンジンの選択(HTTPまたはChrome)
  • HTML::LinkExtractorHTML::LinkExtractor の全機能をサポート

ユースケース

  • メールアドレスのスクレイピング
  • メールアドレス数の出力

クエリ

クエリとして、以下のようなページへのリンクを指定する必要があります:

https://a-parser.com/pages/support/

結果の出力例

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

メールアドレス数の出力

結果フォーマット:

$mailcount

結果の例:

4

設定可能な項目

パラメータ名デフォルト値説明
Good statusAllサーバーからのどのレスポンスを成功とみなすかを選択します。スクレイピング中に異なるレスポンスがあった場合、別のプロキシでリクエストが再試行されます
Good code RegExレスポンスコードをチェックするための正規表現を指定できます
Ban Proxy Code RegExサーバーのレスポンスコードに基づいて、プロキシを一定時間禁止(Proxy ban time)できます
MethodGETリクエストメソッド
POST bodyPOSTメソッド使用時にサーバーへ送信するコンテンツ。変数 $query(リクエストURL)、$query.orig(元のクエリ)、および Use Pages オプション使用時の $pagenum(ページ番号)をサポートします。
Cookiesリクエスト用のCookieを指定できます。
User agent_最新バージョンのChromeのUser-Agentが自動的に挿入されます_ページリクエスト時の User-Agent ヘッダー
Additional headersテンプレートエンジンの機能やクエリコンストラクタの変数を使用して、任意の型のリクエストヘッダーを指定できます
Read only headersヘッダーのみを読み込みます。コンテンツを処理する必要がない場合、トラフィックを節約できます
Detect charset on contentページの内容に基づいて文字コードを認識します
Emulate browser headersブラウザのヘッダーをエミュレートします
Max redirects count0スクレイパーが辿る最大リダイレクト数
Follow common redirects同一ドメイン内での http <-> https および www.domain <-> domain のリダイレクトを、Max redirects count の制限を無視して許可します
Max cookies count16保存する最大Cookie数
EngineHTTP (Fast, JavaScript Disabled)HTTPエンジン(高速、JavaScriptなし)または Chromeエンジン(低速、JavaScript有効)を選択できます
Chrome Headless有効にすると、ブラウザは表示されません
Chrome DevToolsChromiumのデバッグツールを使用できるようにします
Chrome Log Proxy connections有効にすると、Chromeの接続に関する情報がログに出力されます
Chrome Wait Untilnetworkidle2ページが読み込まれたとみなすタイミングを定義します。値の詳細はこちら。
Use HTTP/2 transportHTTP/1.1の代わりにHTTP/2を使用するかどうかを決定します。例えば、GoogleやMajesticはHTTP/1.1を使用すると即座に禁止します。
Don't verify TLS certsTLS証明書の検証を無効にします
Randomize TLS FingerprintTLSフィンガープリントによるサイトの禁止を回避できます
Bypass CloudFlareCloudFlareのチェックを自動的に回避します
Bypass CloudFlare with Chrome(Experimental)Chrome経由でCFを回避します
Bypass CloudFlare with Chrome Max Pages20Chrome経由でCFを回避する際の最大ページ数
Subdomains are internalサブドメインを内部リンクとして扱うかどうか
Follow linksInternal onlyどのリンクを辿るか
Follow links limit0Follow links の制限(各ユニークドメインに適用)
Skip comment blocksコメントブロックをスキップするかどうか
Search Cloudflare protected e-mailsCloudflareで保護されたメールアドレスをスクレイピングするかどうか
Skip non-HTML blocks特定のタグ(script, style, commentなど)内のメールアドレスを収集しない
Skip meta tagsmetaタグ内のメールアドレスを収集しない
Search URL encoded e-mailsURLエンコードされたメールアドレスの収集