memkompreneble

"Ekde kiam homoj la unuan fojon forlasis siajn kavernojn kaj renkontis aliulojn kun aliaj vidpunktoj kaj aliaj lingvoj ekzistas revo: mortigi ilin, por ke ni ne devu lerni ilian lingvon nek kompreni ilian vidpunkton." – citaĵo el la filmo "The Beast With a Billion Backs" de la usona tv-serio Futuramo – tiu ŝerco evidente celas al esperanto, ĉar en la sama filmo oni ankaŭ proponas senseksajn pronomojn "shklim" kaj "shkler" por la angla

trovi ligilojn per regesp 2010-01-02

Filed under: neenkategoriigitaj — memkompreneble @ 16:13
Tags:

Paŝoj por krei liberan eo-e-tekstaron:

1. Kolektis kelkajn komencigajn adresojn de grandaj senkopirajtaj eo-retejoj  per kutima guglado.

2. Kreis ujan datumbazon kaj manĝigis la liston el paŝo 1. al memskribita trarampilroboto.

3. Tiu nun rampas kaj rampas kaj daŭre faras la jenan iteracion:

4. Preni sekvan adreson el la sema listo kaj kontroli bonan aspekton de la URI.

5. Se bone, elŝuti enhavon de la dokumento kaj stori al datumbazo, se malbone daŭrigu ĉe 8.

6. Trovi ligilojn en la suĉita enhavo, normigi relativajn ligilojn per la URI de la dokumento mem, forigi fragmentajn partojn de ligiloj,

7. Aldoni al semolisto tiujn ligilojn, kiuj troviĝas en sama retregiono kiel iu antaŭa semo, kaj kiuj ne ligas al ne-elsuĉenda dokumentformato (.gif, .avi, .pdf, …), kaj kiuj ĝis nun ne aperis en la semolisto. La aliajn ligilojn tamen aldonu al listo de jam-provitaj ligiloj por ŝpari tempon kiam denove ĝi okazos.

8. Se restas komencigaj adresoj en la semolisto, daŭrigi la iteracion ĉe 4., alikaze finiĝis trarampado kaj pretas db kun elsuĉitaj enhavoj.

Kiel troveblis ligiloj en elsuĉitaj paĝoj ĉe paŝo ses? Sin prezentis du evidentaj vojoj: a) per la DOM aŭ b) mem brodi permane kaj per regesp ion taŭgetan. Avantaĝo de a) estus ke la API por DOM estas tiom standarda kaj havebla – tamen la granda malavantaĝo estas ke la traktotaj dokumentoj devas esti validaj kaj bonformitaj. Bedaŭrinde tio ofte ne estas la kazo, kaj ordinare la retumanto ne notas tion ĉar foliumiloj montras ankaŭ erarajn paĝojn. Do restas nur vojo b) kun manbroditaj regulaj esprimoj kiel alternativo.

Serĉinte iomete, mi tamen nur trovis duontaŭgajn regulajn esprimojn por kongrui kun ĉiuj deziritaj ligiloj kaj devis eksperimentadi kaj ĝis nun ne cent-el-cente certas ke la nuna serĉo vere redonas ĉion (antaŭdankon pro proponoj plibonigi).

  1. (<[aA] )([\s\S]*?)([hH][rR][eE][fF]=)([\s\S]*?)(>)([\s\S]*?)(</[aA]>)
  2. (<[fF][rR][aA][mM][eE] )([\s\S]*?)([sS][rR][cC]=)([\s\S]*?)(>)

Kelkfoje la uskleco uzita en la suĉitaj paĝoj ŝajnas stranga, pro tio la serĉesprimoj kongruu kun ĉiuj eblaj variaĵoj de uskleco. kelkaj paĝoj estas organizitaj en kradoj, necesas tial la dua esprimo.

Mi provis la esprimon (.*?) por ŝpareme kongrui kun ĉiuj ajn signoj inter malferma kaj ferma braketoj, tamen iam notis ke tiu serĉo ne trovis ligilojn kun internaj alineŝanĝoj, do ŝanĝis la esprimon al ([\s\S]*?) por ŝpareme kongrui kun ĉiuj signoj kiuj aŭ estas spacigaj aŭ ne-spacigaj, kaj tiel trovis kelkajn ligilojn pli.

Intertempe troviĝas nun kelkcentmil tieltrovitaj ligiloj en la trarampada datumbazo. Grandan problemon signifas dinamika generado de retpaĝoj fare de kelkaj retejoj, kie pro malbona funkciado de la normigo ĉe paŝo ses ekvenas rekursio, kiam fakte malbona adreso tamen elvokas respondon de la retejo kiu sekve produktas denove malbonajn adresojn kiuj sekve elvokas respondojn de la retejo kaj tiel plu ad nauseam.

Por trovi la liston kun eo-lingvaj blogoj el mia unua blogero sufiĉis serĉo en la tabelo de trovitaj ligiloj pri adresoj kiuj aspektas kiel la ĉefa paĝo de blogo, ekz.e http://ABCXYZ.wordpress.comhttp://ABCXYZ.blogspot.com, poste kontroli per rapida rigardo ĉu vere temas pri esperanto (ĉar ĝis nun mankas al mi rapida rimedo por aŭtomate decidi ĉu temas pri (parte) eo-lingva paĝaro aŭ ne), kaj rezultis la listo. Tiuj blogoj nun ankaŭ semos la trarampadon.

Glosaro:

[eo] regesp (regulaj esprimoj) = [en] regex (regular expressions) = standarda formato por formuli serĉojn de litersekvencoj, uzebla en multaj programlingvoj.

[eo] e-teksto = [eo] elektronika teksto = sekvo de literoj en komputila dosiero, kontraste al aŭdaj aŭ bildaj formatoj.

[eo] db = [eo] datumbazo = programaro por stori kaj administri amasojn da dataoj per minimumo da peno.

[eo] retregiona nomo = [en] domain name = ekz.e la majuskla parto de la sekva specimena adreso: http://WWW.XYZ.ABC/ktp/etc.htm.

[eo] trarampilo = [en] webspider; webcrawler; searchbot = komputila program(ar)o por aŭtomate kaj sen direkta homa gvido trafoliumi la interreton laŭ antaŭe deciditaj politikoj.

[eo] API (aplikaĵprograma interfaco) = [en] API (application programming interface) = standarda programbiblioteko kun pretaj metodoj kaj objektoj por certa celo en certa programlingvo.

[eo] DOM (dokument-objekt-modelo) = [en] DOM (document object model) = standarda modelo de la strukturo de retpaĝoj, uzebla en multaj programlingvoj.

[eo] URI (unuforma resurs-identigilo) = [en] URI (uniform resource identifier) = standarda formato de retadresoj laŭ normigoj de la W3C:

  foo://example.com:8042/over/there?name=ferret#nose
  \_/   \______________/\_________/ \_________/ \__/
   |           |            |            |        |
 skemo,   aŭtoritato,     pado,       enketo,  fragmento
Advertisements
 

Respondi

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ŝanĝi )

Twitter picture

You are commenting using your Twitter account. Log Out / Ŝanĝi )

Facebook photo

You are commenting using your Facebook account. Log Out / Ŝanĝi )

Google+ photo

You are commenting using your Google+ account. Log Out / Ŝanĝi )

Connecting to %s