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:

require_once "simple_html_dom.php"; // Inkludera PHP Simple HTML Dom
$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!

Rekommenderas:
æsker - CD tryck - MC scooter - Helpdesk

2 kommentarer till “Screen scraping med PHP”

  1. Fredrik Hedon 13 Mar 2009 at 15:34:22

    Hej!

    Är ute efter nån som kan hjälpa mig med screen scraping. Kan du maila mig?

  2. hyperon 28 Jul 2009 at 17:18:22

    Hej!

    Vet du någon bra guide på svenska just om screen scraping?

RSS

Lämna en kommentar