More Related Content
PDF
Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり PDF
PDF
2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(3)-データソース PPT
PPTX
PPTX
PPT
2011年2月9日第130回FxUG勉強会@東京第一打者空振り三振 PPT
Literacy breaking the cycle Viewers also liked
PPS
Panafricanismo ante ataques a soberanías de los estados africanos PPT
PPTX
PPTX
PPTX
PPTX
PPT
vFabric SQLFire for high performance data PPT
Afrocentricity conference in Paris 11-12 May 2012 PPTX
PPTX
PPTX
VMware vFabric gemfire for high performance, resilient distributed apps PPTX
vFabric Data Director - DB as a Service PPTX
Rawler C#用のWebスクレイピングフレームワーク PPTX
PPTX
Application management for hybrid cloud PPTX
vFabric - Ideal Platform for SaaS Apps PPTX
ประชุมผู้ปกครองครั้งที่ 1 2556 PPTX
PPTX
Catedra Fotos Carnaval 2011 PPTX
Similar to Rawler基本
PDF
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会 PDF
「html5 boilerplate」から考える、これからのマークアップ PDF
WebMatrixに対応した、新しいけど新しくないRazor PDF
PDF
Elasticsearch入門 pyfes 201207 PDF
PDF
PPTX
PDF
CRF を使った Web 本文抽出 for WebDB Forum 2011 PPTX
PDF
ODP
PDF
PPTX
PDF
eZ Publish勉強会9月〜テンプレート言語〜 PDF
PDF
20140902 HTML5プロフェッショナル認定試験対策講座 PDF
Data-Intensive Text Processing with MapReduce ch4 PDF
WordBench Kobe jQueryどうでしょう PDF
Rawler基本
- 1.
- 2.
XAML文法の基本
例:<Page></Page>
タグで囲まれているのが一つの塊。
必ず</***>というように閉じる。
例:<Page>
<Report></Report>
</Page>
タグで挟まれるのは子
子は多数持てる。
例:<Report />
<Report></Report> の省略記法
子要素を持たない時に有用。
- 3.
XAML文法の基本
例:<Page Url="http://www.sfc.keio.ac.jp/"></Page>
PageのプロパティURLにhttp://www.sfc.keio.ac.jp/を代入
例:<Page>
<Page.Url>http://www.sfc.keio.ac.jp</Page.Url>
</Page>
上と同じこと。主に文字列にならないものを入力するときに使う。Treeな
ど。
例:<Page>
<Page.PreTree>
<AppendText Header="http://"></AppendText>
</Page.PreTree>
</Page>
プロパティPreTreeにTreeを代入している。
- 4.
XAML文法の基本
<Data
xmlns="clr-namespace:Rawler.Tool;assembly=Rawler“
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Page > </Page>
</Data>
Xmlns は決まり文句。触ってはいけない。
必ずXmlnsがツリーの根っこ(Root)になくてはいけない。
Dataがツリーの根っこでなければならない理由はないが、便利だからそうし
ているだけ。
新たな追加機能を使うときに使う。
どのDLLのどの名前空間を使うかを指定している。
今のところ特にないので、この決まり文句で大丈夫
以降は、これがRootにあることを前提とします。(長くなるので)
- 5.
Rawler基本(Reportを使おう)
タグで囲まれたところにはTextがある。
空っぽのものもあります。Dataなど。
そのテキストを見るには<Report></Report> を使う
例:<Page Url="http://www.sfc.keio.ac.jp/">
<Report></Report>
</Page>
指定したURLのページを読み込んだPageにはHTMLがどっさり入っている。
例:<Page Url="http://www.sfc.keio.ac.jp/">
<Links>
<Report></Report>
</Links>
</Page>
ページの中のLinkを列挙される。
- 6.
Rawler基本(テキスト処理の関数の合成)
例:<Page>
<Link>
<AppendText Header="Url:">
<Report></Report>
</AppendText>
</Link>
</Page>
AppendTextで文字列の先頭に「Url:」が加えられ、レポートの
出力に「Url:」が加えられる。
テキスト処理に、Trim、Replace、TagClearなどがある。
ツリーの階層を作るとその処理を順番道理やる。
- 7.
Rawler基本(フィルタ)
例:<Page>
<Links LabelFilter=“Next” VisbleType="Tag" >
<Report></Report>
</Links>
</Page>
リンクタグ(<a>)で囲まれている中に、「Next」を含むものを抽
出
VisbleType=“Tag” でリンクタグ全体を表示(<a>もふくむ)
VisbleType をUrlでUrlを、 Label でLabel を表示
例:<Page>
<Links UrlFilter=“www.">
<Report></Report>
</Links>
</Page>
リンクのURLに、「www.」を含むものを抽出
- 8.
HTML+CSS
今のwebページはHtml+CSSの構成で作られている。
Html=データの構造
CSS=デザイン(みため)
だいたいのページではCSSは別ファイルで定義され、
タグのClassでそれを呼び出している。
例:<div class="main entry-content“></div>
なので、タグ名とclass名を指定すれば、そこの部分が取
得できる。
例の場合 タグ=div class名= main entry-content
Webページのソースコードの見方
Chrome 右クリック→「要素の検証」でみれる
HTMLの中の法則をみつけよう。
- 9.
Rawler基本(タグの絞り込み)
例:<Page>
<Tags Tag="div" ClassName="main entry-content">
<Report/>
</Tags>
</Page>
HTML「<div class=“main entry-content“></div>」で囲まれたところ
を取得する。複数あるときは複数。
Tags→Tagsで絞り込むと、範囲を指定した中で、さらに範囲を指定
することになり、安全に取得できる。
- 10.
Rawler基本(ページング)
<Page>
(データ取得処理)
<Links LabelFilter="次へ">
<NextPage></NextPage>
</Links>
</Page>
「次へ」のリンクをクリックして、次のページでも同じデータ取得
処理をするための命令。
Linksで該当部分のURLを取得
NextPageでそれをPageに伝えている。
- 11.
Rawler基本(データの書き込み)
<Data>
<Page>
<Links>
<DataWrite Attribute="URL"></DataWrite>
</Links>
</Page>
</Data>
リンクのURLをDataにURLという情報をつけて書き込む。
DataViewボタンを押すとDataの中が見れる。
ただし、横に長いものになる。(カンマ区切り)
- 12.
Rawler基本(データの書き込み)
<Data>
<Page>
<Links>
<DataWrite Attribute="URL"></DataWrite>
<NextDataRow/>
</Links>
</Page>
</Data>
リンクのURLをDataにURLという情報をつけて書き込む。
<NextDataRow/>で毎回改行される。
DataViewボタンを押すとDataの中が見れる。
縦に長いものになる。
- 13.
Rawler基本(前処理機能)
<Tags Tag="div" ClassName="Comment">
<TagClear>
<Trim>
<Replace OldText="XXXXX" NewText="YYYYY">
<DataWrite Attribute="data"></DataWrite>
</Replace>
</Trim>
</TagClear>
</Tags>
必要な処理の連鎖を作ると階層が深くなってしまう。
可読性が悪くなってしまう。
折りたたみ機能が上手に機能しない!
- 14.
Rawler基本(前処理機能)
<Tags Tag="div" ClassName="Comment">
<DataWrite Attribute="data">
<DataWrite.PreTree>
<TagClear>
<Trim>
<Replace OldText="XXXXX" NewText="YYYYY">
</Replace>
</Trim>
</TagClear>
</DataWrite.PreTree>
</DataWrite>
</Tags>
前のページと同じことをPreTreeをつかいやっている。PreTreeは前にやる処理。
一番底の結果が使われる。(ここでは、 Replace の結果)
PreTreeは折りたためるので、可読性がよくなる。
単数を返すものしかこれは使用できません。
- 15.
Rawler基本(クエリー機能)
<Links >
<Links.Query>
<QueryDistinct>
<QueryOrderBy></QueryOrderBy>
</QueryDistinct>
</Links.Query>
<Report></Report>
</Links>
複数のテキストを返すものは、複数返すものを制御するクエリーが
使える。
クエリも連続して使うことが可能。
例は、 QueryDistinctで重複を削除して、 QueryOrderByでソートし
ている。
- 16.
Rawler基本(クエリー機能)
<Links >
<Links.Query>
<QueryFirst></QueryFirst>
</Links.Query>
<Report></Report>
</Links>
複数取ってくるとして、その複数の中から、何番目のも
のを取ってくるかを指定もできる。
QueryFirstで一番初めに出てくるものだけになる。
QueryLast で一番最後、<QueryElementAt Index=“2”/> で上
から3番目(0から始めるので)を指定できる。
他にもQuerySkip,QueryTakeで指定数、飛ばす(skip)、取っ
てくる(take)ことができる。
ただしTagsは逆順なので、直します・・・。
- 17.
ファイルへの出力
Dataの直下にFileSaveを置く
<Data
xmlns="clr-namespace:Rawler.Tool;assembly=Rawler“
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
< FileSave ExtendFilter=".tsv" >
(処理略)
</ FileSave >
</Data>
FileSaveはDataの拡張版。DataWriteとNextDataRowの命令を
受け付ける。
実行時、 FileNameプロパティの指定がないと、ダイアログが
開きファイル名を尋ねられる。
ファイルへの書き込みはNextDataRowの発動時
- 18.
ファイルからの入力
<TsvReadLines >
<GetTsvValue ColumnName="Url">
TsvファイルのUrl列のもの情報が入る。
</GetTsvValue>
</TsvReadLines>
Tsvファイルとはタブ区切りのテキストファイルのこと。
TsvReadLinesでTsvファイルを一行ずつ読み込む。
実行時、 FileNameプロパティの指定がないと、ダイアログが開きファイル名
を尋ねられる。
GetTsvValueで一行分のデータの指定の列の情報を取る。
FileSaveで作られるファイルはTsvファイルなので、FileSaveで作ら
れたファイルを読み込むのにも使える。