undefined
Blog > Big Data > Post

Einen einfachen Web Crawler in PHP erstellen

Tuesday, December 06, 2022

 

 untitled-design-10

 

 

Bevor wir anfangen, möchte ich eine kurze Zusammenfassung über das Web Scraping geben. Web Scraping bedeutet, Informationen aus dem HTML-Code einer Webseite zu extrahieren. Web Scraping mit PHP unterscheidet sich nicht von Web Scraping mit anderen Computersprachen oder Web Scraping Tools wie Octoparse.

Dieser Artikel erklärt, wie ein Anfänger einen einfachen Webcrawler in PHP erstellen kann. Wenn Sie PHP lernen und für Web-Scraping verwenden möchten, folgen Sie bitte den folgenden Schritten.

Web Crawler in PhP

 

✅ Schritt 1: Fügen Sie der Webseite ein Eingabefeld und eine Schaltfläche "Submit" hinzu. Wir können die Adresse der Webseite in das Eingabefeld eingeben. Reguläre Ausdrücke werden beim Extrahieren von Daten benötigt.

✅ Schritt 2: Reguläre Ausdrücke werden beim Extrahieren von Daten benötigt.

function preg_substr($start, $end, $str) // Regular expression      

{      

    $temp =preg_split($start, $str);      

    $content = preg_split($end, $temp[1]);      

    return $content[0];      

}    

 

✅ Schritt 3: String Split wird beim Extrahieren von Daten benötigt.

function str_substr($start, $end, $str) // string split       

{      

    $temp = explode($start, $str, 2);      

    $content = explode($end, $temp[1], 2);      

    return $content[0];      

}

 

✅ Schritt 4: Hinzufügen einer Funktion zum Speichern des Inhalts der Extraktion.

function writelog($str)

{

  @unlink("log.txt");

  $open=fopen("log.txt","a" );

  fwrite($open,$str);

  fclose($open);

 

Wenn der von uns extrahierte Inhalt nicht mit dem übereinstimmt, was im Browser angezeigt wird, bedeutet es, dass wir die richtigen regulären Ausdrücke nicht gefunden haben. Hier können wir die gespeicherte .txt-Datei öffnen, um die richtige Zeichenfolge zu finden.

function writelog($str)

{

@unlink("log.txt");

$open=fopen("log.txt","a" );

fwrite($open,$str);

fclose($open);

}

 

✅ Schritt 5: Noch eine Funktion ist erforderlich, wenn Sie Bilder aufnehmen möchten.

function getImage($url, $filename='', $dirName, $fileType, $type=0)

   {

    if($url == ''){return false;}

    //get the default file name

    $defaultFileName = basename($url);

    //file type

    $suffix = substr(strrchr($url,'.'), 1);

    if(!in_array($suffix, $fileType)){

        return false;

    }

    //set the file name

    $filename = $filename == '' ? time().rand(0,9).'.'.$suffix : $defaultFileName;

          

    //get remote file resource

    if($type){

        $ch = curl_init();

        $timeout = 5;

        curl_setopt($ch, CURLOPT_URL, $url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

        $file = curl_exec($ch);

        curl_close($ch);

    }else{

        ob_start();

        readfile($url);

        $file = ob_get_contents();

        ob_end_clean();

    }

    //set file path

    $dirName = $dirName.'/'.date('Y', time()).'/'.date('m', time()).'/'.date('d',time()).'/';

    if(!file_exists($dirName)){

        mkdir($dirName, 0777, true);

    }

    //save file

    $res = fopen($dirName.$filename,'a');

    fwrite($res,$file);

    fclose($res);

    return $dirName.$filename;

    }

 

 

✅ Schritt 6: Wir werden den Code für die Extraktion schreiben. Nehmen wir eine Webseite von Amazon als Beispiel. Geben Sie einen Produktlink ein.

if($_POST[‘URL’]){

//---------------------example-------------------

$str = file_get_contents($_POST[‘URL’]);

$str = mb_convert_encoding($str, ‘utf-8’,’iso-8859-1’);

writelog($str);

//echo $str;

echo(‘Title:’ . Preg_substr(‘/<span id= “btAsinTitle”[^>}*>/’,’/<Vspan>/$str));

echo(‘<br/>’);

$imgurl=str_substr(‘var imageSrc = “’,’”’,$str);

echo ‘<img src=”’.getImage($imgurl,”,’img’ array(‘jpg’));  

 

Dann können wir sehen, was wir extrahieren. Unten ist der Screenshot.

 

 

Web Crawling für Nicht-Programmierer

 

Sie brauchen keinen Web-Crawler mehr, wenn Sie einen automatischen Web-Crawler benutzen.

 

Wie bereits erwähnt, ist PHP nur ein Werkzeug, das bei der Erstellung eines Webcrawlers verwendet wird. Computersprachen wie Python und JavaScript sind ebenfalls gute Werkzeuge für diejenigen, die mit ihnen vertraut sind. Heutzutage, mit der Entwicklung der Web-Scraping-Technologie, tauchen immer mehr Web-Scraping-Tools wie Octoparse, Beautiful Soup, Import.io und Parsehub usw. auf. Sie vereinfachen den Prozess der Erstellung eines Web-Crawlers.

 

 

Hier bekommen Sie Octoparse! 🤩

Preis: $0~$249 pro Monat 

Packet & Preise: Octoparse Premium-Preise & Verpackung

Kostenlose Testversion: 14-tägige kostenlose Testversion

Herunterladen: Octoparse für Windows und MacOs

 

Wenn Sie Probleme bei der Datenextraktion haben, oder uns etwas Vorschlägen geben möchten, kontaktieren Sie bitte uns per E-Mail (support@octoparse.com). 💬

 

Autor*in: Das Octoparse Team ❤️
Octoparse Data Crawler Vorlagen Markt

Diese Website verwendet Cookies um Ihnen ein besseres Internet-Erlebnis zu ermöglichen. Lesen Sie wie wir Cookies verwenden und Sie können sie kontrollieren, indem Sie auf Cookie-Einstellungen klicken. Wenn Sie die Website weiter nutzen, akzeptieren Sie unsere Verwendung von Cookies.
Akzeptieren Ablehnen