on Aug 8th, 2008Screen scraping med PHP
Jag har ofta kommit i situationer där jag, i olika projekt, behöver hämta data och statistik från sidor som inte tillhandahåller rss-feeds. Dessa situationer har jag alltid löst genom att skriva simpla regexp som hämtar det jag vill ha. Detta är dock ofta tidsödande och väldigt krävande för systemet som skall interprera scriptet.
Nu har jag dock hittat ett verktyg för att stega igenom dokumentmodellen på en webbplats, nämligen PHP Simple HTML DOM Parser. Verktyget fungerar väldigt tillfredsställande och använder en syntax liknande jQuery.
Vad är det då som skiljer ovan nämnda verktyg från de andra som finns?
Jo en för mig avgörande skillnad är att det stöder icke-korrekta htmldokument. Detta innebär att du kan parsa i princip vilken sida som helst.
För att t.ex. hämta ut alla sökresultat på google för ett visst sökord gör vi enligt följande:
$keyword = "iocore"; // Sökordet vi vill söka efter
$html = file_get_html("http://www.google.se/search?hl=sv&q=" . $keyword); // Hämta ner sidan och gör det till ett simple_html_dom-objekt
foreach($html->find("h2") as $h2) //Hämta alla h2-element
{
foreach($h2->find("a") as $link) // Hämta alla a-element med h2 som förälder
{
echo $link->href; // Skriv ut href-attributet på funna a-element
}
}
svårare än så är det inte!
Det var allt för nu, håll utkik efter mer användbara kodsnuttar här på IoCore!
Hej!
Är ute efter nån som kan hjälpa mig med screen scraping. Kan du maila mig?
Hej!
Vet du någon bra guide på svenska just om screen scraping?