Plaats nieuw bericht Plaats reactie Vorige onderwerp | Volgende onderwerp
Interaddict forum index » Aangeboden en Gezocht » Telefoongids database rippen
Jan
Senior Addict

Bericht Geplaatst: 08 Okt 2008 05:17 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Ik wil graag omgekeerd zoeken, daarvoor wil ik de database van Telesur downloaden:

Ik weet dat ik niet erg ver ben gekomen...maar misschien kan iemand mij een stukje verder brengen. http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A

Op het moment dat ik meer dan 15 namen kan weergeven dan is het succesvol óf

http://www.telesur.sr/website/telefoonboek.asp?
menuid=17&value=2&naam=A&page=1
http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=2
http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=3
http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=4
http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=5
http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=6
etc.

Maar is er geen simpele manier?
Bram
Site Admin

Bericht Geplaatst: 08 Okt 2008 09:49 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Kun je iets duidelijker zijn in wat je precies wil?
_________________
- "If Murphy's Law can go wrong, it will"
- "If you cannot convince them, confuse them."
- "If at first you don't succeed, redefine success."
Jan
Senior Addict

Bericht Geplaatst: 08 Okt 2008 12:06 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

ow Tongsmiley soms heb ik dat.

Dus alle informatie uit de database halen. Dus een query geven waarmee ik de gehele lijst in een keer krijg. (misschien moet het wel in 24 keer, dus per letter) Maar ik krijg nu resultaten, van maximaal 15 namen.
Mr.Zop
Site Admin

Bericht Geplaatst: 08 Okt 2008 12:11 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

gewoon % gebruiken in de zoekactie.
Dus in het naam-veld een % (wildcard) invullen.
_________________
“Rational arguments don’t usually work on religious people, otherwise there would be no religious people.”
Bram
Site Admin

Bericht Geplaatst: 08 Okt 2008 14:35 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Je hebt wel gewoon directe toegang tot de database?
Zo ja, hoe ziet de tabellen structuur er uit?
_________________
- "If Murphy's Law can go wrong, it will"
- "If you cannot convince them, confuse them."
- "If at first you don't succeed, redefine success."
Jan
Senior Addict

Bericht Geplaatst: 09 Okt 2008 13:54 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Die wildcard weergeeft nu inderdaad alle gegevens uit het telefoonboek.
Nu is de vraag, hoe kan ik ervoor zorgen dat hij meer dan 15 items weergeeft op 1 pagina. (dus alle 78235).

Dan kan ik deze vervolgens plakken in een excel file en omgekeerd zoeken.
Pim
Senior Addict

Bericht Geplaatst: 09 Okt 2008 16:35 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

installeer php lokaal..
en dan dit in een .php bestandje zetten, en aanroepen in je browser die waarschijnlijk crashed Knipoog :

Niet getest, maar wellicht kun je proberen die aan te passen naar wat werkends, als je snapt wat er gebeurd:

<?PHP
$paginas = 78235 / 15;
$x = 0;
while($x < $paginas){
$x++;

$html = implode('', file("http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=".$x));

echo $html;

}

?>
_________________
&nbsp;
Jan
Senior Addict

Bericht Geplaatst: 09 Okt 2008 23:47 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Pim het werkt, ik heb nu de A gedaan.

http://www.bedrijvengidssuriname.com/telefoonboek.php

Een omgekeerd zoeken introduceren in Suriname. Is toch leuk!
Bram
Site Admin

Bericht Geplaatst: 10 Okt 2008 10:15 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Ik ben niet zo heel erg thuis in regexp, maar misschien dat Pim het onderstaande even kan verbeteren zodat hij werkt? Ik heb even geen tijd om het helemaal uit te werken.

Hiermee worden enkel de gewenste gegevens uit de pagina's gehaald en in een tweedimensionale array gestopt. Tot slot wordt door de array geloopt en wordt een punt/komma gescheiden string weergegeven. ALs ik het goed heb, uit mijn hoofd, zou je de webpagina kunnen opslaan als '*.cvs' en kun je hem dan importeren in Excel.

Het werkt alleen nog niet, ik denk door de reguliere expressies en timeouts. Het laatste zou je kunnen oplossen door een bereik in te bouwen (dus elke keer per 5 of 10 pagina's parsen).

Code:
<?php
$pages = 78235 / 15;
$phoneNumber;
$company;
$address;
$phoneBookEntry;

for ($x=1; $x<$pages; $x++)
{
   $html = implode('', file("http://www.telesur.sr/website/telefoonboek.asp?menuid=17&value=2&naam=A&page=".$x));

   preg_match_all('/<td class=\"titel4\" valign=\"top\" width=\"60\">(.*)<\/td>/iU', $html, $phoneNumber[$x], PREG_SET_ORDER);
   preg_match_all('/<td class=\"titel4\" valign=\"top\" width=\"100%\">(.*)<\/td>/iU', $html, $company[$x], PREG_SET_ORDER);
   preg_match_all('/<td valign=\"top\">(.*)<\/td>/iU', $html, $address[$x], PREG_SET_ORDER);   

   for ($y=0; $y<count($phoneNumber[$x]); $y++)
   {
      $nextEntry             = count($phoneBookEntry);
      $phoneNumberStripped          = str_replace('<td class="titel4" valign="top" width="60">', '', $phoneNumber[$x][$y]);
      $phoneBookEntry[$nextEntry]['phone']    = str_replace('</td>', '', $phoneNumberStripped);
      $companyStripped         = str_replace('<td class="titel4" valign="top" width="100%">', '', $company[$x][$y]);
      $phoneBookEntry[$nextEntry]['address']    = str_replace('</td>', '', $companyStripped);
      $addressStripped         = str_replace('<td valign="top">', '', $address[$x][$y]);
      $phoneBookEntry[$nextEntry]['address']    = str_replace('</td>', '', $addressStripped);
   }
}

for ($z=0; $z<count($phoneBookEntry); $z++)
   echo $phoneBookEntry[$z]['phone']. ';' .$phoneBookEntry[$z]['company']. ';' .$phoneBookEntry[$z]['address']. ';\n';

?>
_________________
- "If Murphy's Law can go wrong, it will"
- "If you cannot convince them, confuse them."
- "If at first you don't succeed, redefine success."
Pim
Senior Addict

Bericht Geplaatst: 10 Okt 2008 13:47 Bekijk gebruikers profiel Stuur privé bericht Reageer met quote

Sorry ik heb er ff geen tijd voor..

Ga zometeen naar het vliegveld voor een weekendje Londen Smiley .
_________________
&nbsp;
Plaats nieuw bericht   Plaats reactie
Berichten van afgelopen:   

Ga naar:  
Tijden zijn in GMT + 1 uur
Je mag geen nieuwe onderwerpen plaatsen
Je mag geen reacties plaatsen
Je mag je berichten niet bewerken
Je mag je berichten niet verwijderen
Ja mag niet stemmen in polls