undefined
Blog > Big Data > Post

Einen einfachen Web Crawler in PHP erstellen

Tuesday, September 14, 2021

Inhaltsverzeichnis

 

Web Crawler in PhP

Web Crawling für Nicht-Programmierer

 

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.

 

untitled-design-10

 

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.

 

Nehmen Sie Octoparses Web-Scraping-Vorlagen als Beispiel, es ermöglicht jedem, Daten mithilfe von vorgefertigten Vorlagen zu scrapen. Sie brauchen keine Crawler-Einrichtung mehr, geben Sie einfach die Schlüsselwörter für die Suche ein und erhalten Sie sofort Daten.

Template Mode Octoparse8

 

 

 

Relative Artikel

 

 

 

Laden Sie Octoparse herunter, um mit Web-Scraping zu beginnen, oder kontaktieren Sie uns
für die Fragen über Web Scraping!

Kontaktieren Sie uns Herunterladen
btnImg
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