Wie kann ich HTML-Inhalte effizient mit Perl extrahieren?
-
05-07-2019 - |
Frage
Ich schreibe einen Crawler in Perl, die Inhalte von Webseiten zu extrahieren hat, die auf demselben Server befindet. Ich bin derzeit auf der HTML :: Modul Extrahieren Sie die Arbeit zu tun, aber ich fand das Modul ein bisschen langsam, so schaute ich in den Quellcode und fand heraus, dass es keine Verbindung Cache nicht verwendet für
Lösung Ich benutze pQuery für meine Web-Scraping. Aber ich habe auch gute Dinge über Web :: Scraper gehört. hat in Antworten auf ähnliche Fragen bei Ihnen auf SO Beide zusammen mit anderen Modulen erschienen:
Andere Tipps
HTML::Extract
-Funktionen aussehen sehr Grundlagen- und uninteressant. Wenn die Module, die erwähnt draegfun nicht wahr interessieren, können Sie alles tun, was nicht mit HTML::Extract
LWP::UserAgent
und HTML::TreeBuilder
selbst, ohne dass sehr viel Code überhaupt, und dann würden Sie frei in Caching auf Ihrem eigenen Bedingungen zu arbeiten.
Ich habe mit Web :: Scraper für meine Schaben Bedürfnisse. Es ist sehr schön in der Tat Daten zum Extrahieren, und weil man ->scrape($html, $originating_uri)
nennen kann es dann sehr einfach, das Ergebnis, das Sie auch benötigen zwischenzuspeichern.
Sie benötigen diese in Echtzeit zu tun? Wie kommt man die Ineffizienz beeinflussen? Machst du die Aufgabe, seriell, so dass Sie eine Seite extrahieren, bevor Sie auf die nächste bewegen? Warum wollen Sie einen Cache vermeiden möchten?
Kann Crawler die Seiten herunterladen und geben sie nicht auf etwas anderes aus? Vielleicht ist Ihr Crawler kann sogar parallel laufen, oder in irgendeiner Art und Weise verteilt.