Weitere ähnliche Inhalte
Ähnlich wie Rawler C#用のWebスクレイピングフレームワーク (20)
Rawler C#用のWebスクレイピングフレームワーク
- 4. XAML(Extensible Application Markup Language) XAMLとは、MSの開発した、多数のオブジェクトの状態と関係をテキストで記述するためのXMLみたいなもの。 主に、UIのデザインで使われる。(WPF、 Silverlightなど) 複数のオブジェクトの記述をコピペできるのが強み。 親子関係の入れ替えとか、コードとして書くとすごく面倒。それがコピペで済むなんて。 C#4.0からSystem.XAML空間が追加され、UIだけのものでもなくなった。(はず) そんなに使われていない?オブジェクトの状態保存には便利。 Webスクレイピングは動作の組み合わせなので、XAMLとの相性はいい。 Visual Studioは優秀なXAML編集ソフトである。インテリセンスも使える。 そのため、このフレームワークには、Visual Studioが必要。優秀なXAML編集コントロールがあれば、不要になるのだけど… また、 Visual Studioでは、単純なXAMLだけでなく、コードビハインドとしてコードも書けるので拡張性がよすぎる。 コピペ以上の優秀なUIを用意することが面倒だったので、XAMLの記述で満足しちゃった。
- 5. インストールと手順 必要なもの:Visual Studio2010以降 C:sersユーザ名)ocumentsisual Studio 2010emplatestemTemplates に、Zip圧縮ファイル内のZipファイルを移動 そうするとテンプレートに追加される。 手順 Visual Studioで新しくプロジェクト(WPF)を作り、Rawler.dllを参照に追加。 RawlerControlを画面に張る。 RawlerTreeを構築 デバック開始(F5) 作ったRawlerTreeを選択。Runボタンを押す。 待つ DataViewでデータの中身を見ることができ、TSVで出力でファイル書きだし。
- 9. Webページの解析 ページの規則性を発見して、それに合わせて作っていく。 主な解析用のクラス ClipText 指定した文字列で挟まれた文字列を取得し子に送ります。IsMulti指定で複数可能。 TagExtraction 指定したタグで囲っている文字列を取得し子に送ります。IsMulti指定で複数可能。Filterでほしい要素を限定することができます。 Link <a></a> で挟まれたリンクを取得し子に送ります。IsMulti指定で複数可能。Filterでほしい要素を限定することができます。子に送る文字列をVisbleTypeで指定します。
- 10. 他の解析用クラス ImageLink <img> タグを取得し子に送ります。IsMulti指定で複数可能。Filterでほしい要素を限定することができます。子に送る文字列をVisbleTypeで指定します。 Contains 指定した文字列を含んでいる時、親文字列を子に送ります。ResultプロパティをFalseに指定したとき、「指定した文字列を含んでいない時」になります。 実質IF文です。条件分岐に使ってください。 Replace 親の文字列に対して、置換処理をします。 Trim 親の文字列の前後の空白を除去します。DoChopReturnCodeプロパティをTrue時に、改行コードも除去します。 RegularExpressions 正規表現で抽出します。Pattern に正規表現を、GroupNum に抽出するグループ番号を入れる。デフォルトは0。 TagClear <>で囲まれたタグをすべて削除します。また文字参照(<など)も置換します。
- 12. その他の便利クラス Document ただの文字列を親にするときに使うクラスです。処理はしません。 使い道的には、親の文字列とは違うものを使いたいとき使うといいでしょう。Contain-Document-DataWrite の流れで指定の文字列が含まれていた時の書き込む文字列の指定など。 内部的には複数文字列処理をするときの親クラスです。 Iterator 複数の文字列を親にするときに使うクラスです。Textsプロパティに扱いたい複数の文字列を入れてください。 使い道的には、例えば複数のURLから取得したい時などに使うといいでしょう。 Report ReportManageクラスにレポートを送ります。挙動チェックなどに使います。 Sleep 挙動を一時的に止めます。デフォルト値では3秒止めます。連続アクセスで止まるサイト対策です。
- 24. FAQ パラメータに<,>,&, などが使えません 特殊文字です。 <みたいに書かないとだめ。詳しくは、エンティティ参照でググってくれ。 オブジェクトに名前を付けて、コード側で指定するのも有効な手段。 デバックがやりにくい。 Reportを上手に使う。 ごめん・・。 バグがあるんじゃね? 作りかけなので…発生箇所を教えてください。