トリプルジョブ: ツリー タスクを実行する必要があります。3 つのタスクがあります。
- ページを取得する
- HTML を解析する
- データを保存... そして、はい - これは真の Perl ジョブです!
スイスのサイトの 6000 のサブページすべてでパーサー ジョブを実行する必要があります。(政府のサイト - 非常に優れたサーバーを備えています)。
http://www.educa.ch/dyn/79362.asp?action=searchを参照 してください (約 6000 件の結果
が表示さ
れない場合は、.
詳細ページはこんな感じです。
[リンクテキスト][1]
- エコール ヌーベル ドゥ ラ スイス ロマンド Ch. de Rovéréaz 20 Case postal 161 1000 ローザンヌ 12 ウェブサイト info@ensr.ch Tel:021 654 65 00 Fax:021 654 65 05
別の詳細ページはこれを示しています:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta name="generator" content="DigiOnline GmbH - WebWeaver 3.4 CMS - "><title>educa.ch</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link rel="stylesheet" href="101.htm"><script src="102.htm"></script><script language="JavaScript"><!--
var did='d79376';
var root=new Array('d200','d205','d73137','d1566','d79376','d');
var usefocus = 1;
function check() {
if ((self.focus) && (usefocus)) {
self.focus();
}
}
// --></script></head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="check();"><table cellspacing="0" cellpadding="0" border="0" width="100%"><tr><td width="15" class="popuphead"><img src="/0.gif" alt="" width="15" height="16"></td><td width="99%" class="popuphead">Adresse - Schulen in der Schweiz</td><td width="20" class="popuphead" valign="middle"><a href="#" title="Print" onclick="window.print(); return false;"><img src="../pics/print16x13.gif" alt="Drucken" width="16" height="13"></a></td><td width="20" class="popuphead" valign="middle"><a href="#" title="close" onclick="window.close(); return false;"><img src="../pics/close21x13.gif" alt="Schliessen" width="21" height="13"></a></td></tr><tr bgcolor="#B2B2B2"><td colspan="4"><img src="/0.gif" alt="" width="1" height="1"></td></tr></table><div class="leerzeile"> </div><div class="leerzeile"><img src="/0.gif" alt="" width="15" height="8">Auseklis - Schule für lettische Sprache und Kultur</div><div class="leerzeile"> </div><div><img src="/0.gif" alt="" width="15" height="8">Mutschellenstrasse 37</div><div><img src="/0.gif" alt="" width="15" height="8"></div><div><img src="/0.gif" alt="" width="15" height="8">8002 Zürich</div><div class="leerzeile"> </div><div><img src="/0.gif" alt="" width="15" height="8"><a href="http://latvia.yourworld.ch" target="_blank">latvia.yourworld.ch</a></div><div><img src="/0.gif" alt="" width="15" height="8"><a href="mailto: schorderet@inbox.lv">schorderet@inbox.lv</a></div><div class="leerzeile"> </div><div><img src="/0.gif" alt="" width="15" height="8">Tel:<img src="/0.gif" alt="" width="6" height="8">+41786488637</div><div><img src="/0.gif" alt="" width="15" height="8">Fax:<img src="/0.gif" alt="" width="4" height="8"></div><div> </div></body></html>
** HTML::TokeParser または HTML::TokeParser** または * HTML::TreeBuilder::LibXML *でこの仕事をしたいのですが、HTML::TreeBuilder::LibXML の経験はほとんどありません
この仕事にはどちらを選びますか: 注 - 結果を MySQL-DB に保存したいと考えています。最善の方法は、解析後にすぐに保存することです。
したがって、次の 3 つのタスクがあります。
- ページを取得する
- HTML を解析する
- データの保存
最初の項目: LWP::UserAgent を使用して取得します。このフォーラムには、そのモジュールを使用してデータを投稿し、結果のページを取得する多くの例があります。ところで、必要に応じて代わりに Mechanize を使用できます。
2 番目:たとえば、HTML::TokeParser またはその他のモジュールを使用してページを解析し、必要なデータのみを取得します。
3 番目:データをすぐにデータベースに格納します。途中で一時ファイルを作成する必要はありません。
うーん - 最初と 2 番目の質問 - 取得方法と解析方法。