Un travail triple: je dois faire un travail avec une tâche arborescente. Nous avons trois tâches:fetch pages [LWP] les analyse [HTML :: TokeParser] et stocke les résultats [DBI]
- pages Fetch
- Parse HTML
- données de magasin ... Et oui - c'est un vrai Perl-travail!
Je dois faire un travail d'analyseur sur toutes les 6000 sous-pages d'un site en suisse. (un site gouvernemental - qui a de très bons serveurs).
voir http://www.educa.ch/dyn/79362.asp?action=search et
(si vous ne voyez pas environ 6000 résultats - puis effectuez une recherche avec
Une page détaillée est comme ceci:.
[texte du lien] [1]
- Nouvelle école de la Suisse Romande Ch. de Rovéréaz 20 Case postale 161 1000 Lausanne 12 Site [email protected] Tél: 021 654 65 00 Fax: 021 654 65 05
autres pages détaillées montre ceci:
<!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: [email protected]">[email protected]</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>
I veulent faire ce travail avec HTML :: ** TokeParser ou HTML :: TokeParser ** ou * HTML :: TreeBuilder :: LibXML * mais j'ai peu d'expérience avec HTML :: TreeBuilder :: LibXML
Lequel Préférez-vous f ou ce travail: Note - Je veux stocker les résultats dans une base de données MySQL. Les meilleures choses serait de stocker immitiately après l'analyse syntaxique:
Nous avons donc trois tâches:
- Fetch pages
- Parse HTML
- Stocker les données
Premier élément : Utilisez LWP :: UserAgent pour récupérer. Il existe de nombreux exemples dans ce forum d'utilisation de ce module pour publier des données et obtenir les pages résultantes. BTW nous pouvons utiliser Mechanize à la place si nous préférons.
Deuxième: Analyser la page comme par exemple avec HTML :: TokeParser ou un autre module pour obtenir uniquement les données dont nous avons besoin.
Troisième: Stockez les données directement dans une base de données. Il n'est pas nécessaire de passer par une étape intermédiaire et d'écrire un fichier temporaire.
hmmm - la première et la deuxième question - comment chercher et comment analyser.
Bonjour Auctionitis, Un grand merci pour la réponse. Cela m'aide à commencer. Et oui: j'ai déjà commandé le livre "Perl and LWP" de Sean Burke. Un bon tipp! Remarque - j'ai beaucoup de choses à faire. - Je viendrai avec plus de questions et d'autres choses - mais maintenant je vais d'abord faire quelques exercices. Jusqu'à bientôt! Cordialement – zero
Bonjour Auctionitis - encore merci pour le message et vos bons conseils. BTW - J'ai fait plus d'efforts - pouvez-vous m'aider à déboguer.Aime avoir de vos nouvelles - voir le code pour déboguer! http://stackoverflow.com/questions/4007480/applying-a-loop-on-lwpuseragent-to-fetch-1000-pages-at-once - j'adore avoir de vos nouvelles. Martin – zero