Einen einfachen Web Crawler in PHP erstellen
Tuesday, December 06, 2022
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
Beliebteste Beiträge
Beiträge nach Thema