broncode filteren
Ik wil graag een script maken waarmee ik gegevens uit een (html) broncode kan 'filteren'.
Het gaat dan om een complete webpagina. Daarop staan onder elkaar gegevens. Deze gegevens wil ik graag allemaal in een apparte string (of array) zetten.
Hoe kan ik nu deze gegevens 'scheiden' van de rest van de broncode?
Alvast bedankt!
Wat wil je er mee doen?
Maar de discussie of dit legaal of niet is, is niet nodig. Ga er maar vanuit dat voordat ik dit script publiceer, ik het met de webmaster heb overlegd.
Je kunt met regex'en (regular expressions) aan de slag gaan, of met dom kan je de pagina benaderen als xml, zodat je dat als xml kan benaderen of met xpath of gaan kloten met explode.
Eigenlijk mag het sowieso... Als je maar linkt (anders zou google ook illegaal zijn, niet waar?)
Google is idd illegaal als zij uw website gaan indexeren, maar jij hebt aangegeven in robots.txt of dit wel mag of niet.
Aaron schreef op 03.06.2009 16:07:
Eigenlijk mag het sowieso... Als je maar linkt (anders zou google ook illegaal zijn, niet waar?)
Nee, het mag niet sowieso.
denk alleen dat je met alles in XML zetten tegen onverwachte problemen aan kan lopen zoals bijvoorbeeld ongeldige HTML code. (zie ook mijn topic over XML parsen)
Waarom zou je eigenlijk zoiets zelf bouwen? om te leren misschien, maar er zijn genoeg frameworks beschikbaar die al het lastige werk voor je doen.
klinkt niet erg leerzaam maar waarom het wiel opnieuw uitvinden?
(sorry, ben gewoon een luie programmeur)
termination schreef op 03.06.2009 16:51:
denk alleen dat je met alles in XML zetten tegen onverwachte problemen aan kan lopen zoals bijvoorbeeld ongeldige HTML code.
Nee hoor, gewoon de html inladen, volgens mij is dat met loadhtml. Heb d'r totaal geen last mee.
De code van die website was dusdanig slecht dat het gewoon onmogelijk te parsen viel. Het grootste probleem was nog dat de tags soms (lees 75%) helemaal niet werden afgesloten.
Dat is wat ik bedoel met problemen.
(Nu mag ik hopen dat de meeste websites een beetje beter zijn gemaakt dan dat anders moeten ze nodig mensen gaan ontslaan)
De validator geeft hier bij mij 75 Errors, 14 warning(s). Bij mij is er ook gekloot met de tags, maar hier lukt het wel.
ben dus nogsteeds opzoek naar een goede oplossing.
Karl, kun jij je code misschien naar mij mailen?
kan ergens in mijn profiel dacht ik.
termination schreef op 03.06.2009 17:08:
Karl, kun jij je code misschien naar mij mailen?
Waarom is iedereen tegenwoordig zo arrogant dat er maar gepm't, gemsn't of gemailt moet worden.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$bestand = file_get_contents("http://url.tld");
$doc = new DOMDocument();
@$doc->loadHTML($bestand);
$xpath = new DOMXPath($doc);
$query = "//hier/je/xpath/query";
$data = $xpath->evaluate($query);
echo $data;
?>
$bestand = file_get_contents("http://url.tld");
$doc = new DOMDocument();
@$doc->loadHTML($bestand);
$xpath = new DOMXPath($doc);
$query = "//hier/je/xpath/query";
$data = $xpath->evaluate($query);
echo $data;
?>
In dit geval dus duidelijk niet van toepassing.
oja, dankjewel.
Het juist alleen maar goed dat er code gepost wordt, zo kunnen anderen die later dit topic lezen ook nog aan dat stukje code komen. Als de code alleen maar onderling blijft, blijven dezelfde topics komen, terwijl het antwoord allang ooit gegeven is.
Hipska schreef op 03.06.2009 16:17:
Google is idd illegaal als zij uw website gaan indexeren, maar jij hebt aangegeven in robots.txt of dit wel mag of niet.
Google heeft schijt aan de robots.txt
Ik vind zelf dat het soms beter is om via msn te helpen omdat je mensen dan niet alleen het script kan geven maar ook uit kan leggen wat alles doet en hoe het in zijn werk gaat.
Dat is tenminste mijn reden waar ik vaak mensen mij toe laat voegen.
Mvg,
Tim Kampherbeek
explode bijvoorbeeld), dan kan iemand anders in de toekomst er ook wat van snappen. Dat is veel effectiever dan één persoon apart helpen.
Je hoeft mensen ook niet hele scripts te geven, daar leren ze minder van. Daarom kan je best van code die je misschien wel verkoopt een soort van testcase maken zodat ze er zelf mee aan de slag kunnen; het probleem zelf oplossen.
Offtopic (sorry): En waarom kan dat niet hier op het forum? Als je mensen gewoon hier op het forum alles uitlegt (het is totaal niet moelijk om een link naar een functie te maken Je hoeft mensen ook niet hele scripts te geven, daar leren ze minder van. Daarom kan je best van code die je misschien wel verkoopt een soort van testcase maken zodat ze er zelf mee aan de slag kunnen; het probleem zelf oplossen.
Tim Kampherbeek schreef op 04.06.2009 03:37:
Ik vind zelf dat het soms beter is om via msn te helpen omdat je mensen dan niet alleen het script kan geven maar ook uit kan leggen wat alles doet en hoe het in zijn werk gaat.
ik vind dat je dit soort opmerkingen beter voor je kunt houden.
1 dit FORUM is gemaakt om mensen te helpen niet jou msn adres.
2 waarom zou dat nou toch zijn? omdat andere mensen dan later en forum topic kunnen na lezen en als ze het zelfde probleem heb het zelf kunnen oplossen.
3 misschien verstandig zoals Hipska al eerder aan gaaf stopen met zinloos reageren ...
Hipska:
stop eens met overal nutteloos op te reageren a.u.b. Je helpt er niemand mee. Ook jezelf niet (behalve dan je postcount)
en Afra
Afra:
Nu moet je echt een keer gaan kappen met die gigantisch nutteloze posts van je, die altijd om een of andere mysterieuze manier midden in de nacht komen. En ik weet dat ik niet de enige ben die er zo over denkt. Zijn probleem is duidelijk, bij het uitvoeren van de query krijgt hij de foutmelding dat er een unknown column is.
dit zijn geen stille hints!
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
Ik heb inmiddels wat tutorials gelezen. Maar hoe kan ik nu dmv regular expressions bijv. alles tussen de tags <a href="geenlink">Deze tekst moet ik dus filteren</a> halen? Ik weet namelijk niet hoeveel tekens er tussen deze tags staan en ik kan dus niet bijv. 5 punten zetten
Vijf punten zou ook niet goed zijn. Waar haal je dat vandaan?