Heim > Artikel > Backend-Entwicklung > Geben Sie Tipps, wie Sie mit PHP und phpSpider riesige Datenmengen stapelweise crawlen können!
Tipps zur Verwendung von PHP und phpSpider zum stapelweisen Crawlen großer Datenmengen!
Mit der rasanten Entwicklung des Internets sind riesige Datenmengen zu einer der wichtigsten Ressourcen im Informationszeitalter geworden. Für viele Websites und Anwendungen ist das Crawlen und Abrufen dieser Daten von entscheidender Bedeutung. In diesem Artikel stellen wir vor, wie Sie mithilfe der PHP- und phpSpider-Tools ein Batch-Crawling großer Datenmengen erreichen, und stellen einige Codebeispiele zur Verfügung, die Ihnen den Einstieg erleichtern.
phpSpider installieren und konfigurieren
Zuerst müssen wir PHP und Composer installieren und dann phpSpider über Composer installieren. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:
composer require duskowl/php-spider
Nachdem die Installation abgeschlossen ist, können wir im Projektverzeichnis den folgenden Befehl verwenden, um ein neues Crawler-Skript zu generieren:
vendor/bin/spider create mySpider
Dadurch wird im aktuellen Verzeichnis eine Datei mit dem Namen mySpider.php generiert Verzeichnis. Wir können unsere Crawler-Logik darin schreiben.
Zunächst müssen wir die zu crawlende Start-URL und die zu extrahierenden Datenelemente definieren. Suchen Sie in mySpider.php den Konstruktor __construct() und fügen Sie den folgenden Code hinzu:
public function __construct() { $this->startUrls = [ 'http://example.com/page1', 'http://example.com/page2', 'http://example.com/page3', ]; $this->setField('title', 'xpath', '//h1'); // 抽取页面标题 $this->setField('content', 'xpath', '//div[@class="content"]'); // 抽取页面内容 }
Im startUrls-Array können wir die zu crawlende Start-URL definieren. Diese URLs können eine einzelne Seite oder eine Liste mehrerer Seiten sein. Durch Festlegen der Funktion setField() können wir die zu extrahierenden Datenelemente definieren und XPath oder reguläre Ausdrücke verwenden, um Seitenelemente zu finden.
Als nächstes müssen wir eine Rückruffunktion schreiben, um die gecrawlten Daten zu verarbeiten. Suchen Sie die Funktion handle() und fügen Sie den folgenden Code hinzu:
public function handle($spider, $page) { $data = $page['data']; $url = $page['request']['url']; echo "URL: $url "; echo "Title: " . $data['title'] . " "; echo "Content: " . $data['content'] . " "; }
In dieser Rückruffunktion können wir die Variable $page verwenden, um die gecrawlten Seitendaten abzurufen. Das $data-Array enthält die von uns definierten extrahierten Datenelemente und die Variable $url speichert die URL der aktuellen Seite. In diesem Beispiel drucken wir die Daten einfach auf dem Terminal aus. Sie können sie bei Bedarf in einer Datenbank oder Datei speichern.
Führen Sie den Crawler aus
Nachdem wir die Crawler-Logik geschrieben haben, können wir den folgenden Befehl im Terminal ausführen, um den Crawler auszuführen:
vendor/bin/spider run mySpider
Dadurch wird automatisch das Crawlen und Verarbeiten der Seite gestartet und die Ergebnisse an das Terminal ausgegeben.
5.1 Gleichzeitiges Crawlen
Für Szenarien, die eine große Menge an Crawling erfordern, können wir die Anzahl gleichzeitiger Crawls festlegen, um das Crawlen zu beschleunigen. Suchen Sie in der Datei mySpider.php nach der Funktion __construct() und fügen Sie den folgenden Code hinzu:
function __construct() { $this->concurrency = 5; // 设置并发数 }
Setzen Sie die Parallelitätsvariable auf die gewünschte Parallelität, um die Anzahl gleichzeitiger Crawling-Anfragen zu steuern.
5.2 Geplantes Crawlen
Wenn wir Daten regelmäßig crawlen müssen, können wir die von phpSpider bereitgestellte Funktion für geplante Aufgaben verwenden. Zuerst müssen wir die Funktion startRequest() in der Datei mySpider.php festlegen, zum Beispiel:
public function startRequest() { $this->addRequest("http://example.com/page1"); $this->addRequest("http://example.com/page2"); $this->addRequest("http://example.com/page3"); }
Dann können wir den folgenden Befehl im Terminal ausführen, um den Crawler regelmäßig auszuführen:
chmod +x mySpider.php ./mySpider.php
Dadurch wird der Crawler ausgeführt als geplante Aufgabe und Crawlen gemäß dem festgelegten Zeitintervall.
Das obige ist der detaillierte Inhalt vonGeben Sie Tipps, wie Sie mit PHP und phpSpider riesige Datenmengen stapelweise crawlen können!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!