主な機能:
- HTML処理-ダウンロード、HTML分析
- DOM分析-リンク、画像、表の取得
- リンクの抽出、フィルター、独自のフィルターを作成する機能、サイトの詳細な分析
- メールアドレス、電話、URLなどの抽出
- サイトコンテンツの分析(要素数、単語密度)
- SEO分析の機会
データ抽出SDKの使用方法
適用分野:
- 必要な情報を収集するためのプログラム
- 分析サービスの開発、サイトおよびコンテンツの分析
- データベース、リストをコンパイルするためのプログラム
- 競合分析ソフトウェア
- SEOプログラム
- Webリソースの自動化
- クローラープログラム
HtmlProcessorおよびContentAnalyzerクラス
HtmlProcessorクラスは、HTMLを読み込んで処理するように設計されています。
主な機能:
- プロキシサポート
- UserAgentサポート
- 見出し、メタタグ、画像、リンク、キーワードなどの抽出
- テーブルの操作(検索、フィルター)
- GETおよびPOSTプロトコルのサポート
クラス図を以下に示します(クリック可能):
HtmlProcessorの使用例:
HtmlProcessor proc = new HtmlProcessor(
new Uri ( "http://www.microsoft.com/" ),
new WebProxy( "http://111.111.11.1/" , true ));
proc.Initialize(); //
string html = proc.InnerHtml; // Html
string text = proc.InnerText; //
// DataTable
DataTable dt = proc.GetDataTableByTableIndex(0);
// "Access and connect with thousands of
// Microsoft Certified companies to find products and services"
string value = proc.GetHtmlString( "Microsoft Pinpoint" , "</div></div>" ).RemoveHtmlTags();
//
List <ImageInfo> images = proc.Images;
* This source code was highlighted with Source Code Highlighter .
WebProxyはコンストラクターで見落とされる可能性があります。
POSTリクエストを送信するには、次のコードを使用する必要があります。
HtmlProcessor proc = new HtmlProcessor(
new Uri ( "http://www.microsoft.com/" ),
new WebProxy( "http://11.11.1.1:111/" , true ));
proc.HttpMethod = HttpMethods.POST;
var parameters = new NameValueCollection();
parameters.Add( "name" , "value" );
proc.PostParameters = parameters;
proc.Initialize();
* This source code was highlighted with Source Code Highlighter .
LinksExtractorクラス
LinksExtractorクラスは、リンクを抽出するように設計されています。
主な機能:
- 指定されたURLでリンクを抽出します
- プロキシサポート
- 表示/非表示のリンクを取得する機能
- 詳細なページ分析
- 取得したリンクの最大数を制御する
- フィルターと検索ルールのサポート
ルール:
- TextMustContainCondition-リンクテキストには値が含まれている必要があります
- TextMustNotContainCondition-リンクのテキストには値を含めないでください
- SameDomainCondition-リンクはページと同じドメインにある必要があります(内部リンクのみ)
- LinkIdMustContainCondition-リンクのIDには値が含まれている必要があります
- LinkIdMustNotContainCondition-リンクのIDには値を含めないでください
- HrefMustContainCondition-hrefリンクには何らかの値が含まれている必要があります
- HrefMustNotContainCondition-hrefリンクに値を含めることはできません
public interface ICondition
{
bool Satisfied(LinkInfo linkInfo, string value);
bool Satisfied(string linkInfo, string value);
}
使用例:
LinksExtractor ext = new LinksExtractor( new Uri ( "http://microsoft.com/" ));
// , href "microsoft"
ext.AddRule( "microsoft" , new HrefMustContainCondition());
// 10
ext.Maximum = 10;
//
ext.ExtractHidden = true ;
//
ext.Extract();
//
var links = ext.Links;
* This source code was highlighted with Source Code Highlighter .
CTPバージョンでは、Maximumプロパティは100に制限されています。
実際の使用例- 指定されたゾーン内のサイトのリストを取得する方法 。
その他のクラス
WebScreenshotExtractorクラスとそれを使用するプログラムについては、 こちらをご覧ください 。
次回は、EmailsExtractor、PhonesExtractor、UrlsExtractor、GuidExtractor 、SEO、およびその他の機能のクラスについて説明しますが、いくつかの例はすでにここで確認できます 。
CodeplexからData Extraction SDK v.1.0 CTPをダウンロードします
実際の使用に関するいくつかの言葉
このSDKを使用して、次のアプリケーションが開発されました。
- オーストラリアのイエローページデータ抽出(プライベートプロジェクト)
- メール抽出ツール
- 電話抽出器
- リンク抽出
- Facebookデータ抽出(プライベートプロジェクト)
- Google Web検索結果抽出
- Google関連のWebサイト抽出
- PageRank Extractor
- SmartBrowser ( Habrでの 発表 )
- Webサイトのスクリーンショットとサムネイル抽出 ( Habrのお知らせ )
- その他
フィードバック
私は聞きたいです:
- 見られるバグ
- 機能を拡張するための可能なオプション
- 質問への答え、この種の製品のライセンスのためにあなたが血を与えることをどれほど気にしないか
最後に、データ抽出タスクがある場合は、ご連絡ください:)
ご清聴ありがとうございました!