Ich möchte einen Crawler erstellen, der einige Daten vom Trip Advisor abschabt. Im Idealfall wird es (a) Identifizieren Sie die Links zu allen zu crawlenden Standorten. (b) sammelt Links zu allen Sehenswürdigkeiten in jedem Ort und (c) sammelt die Zielnamen, Daten und Bewertungen für alle Bewertungen. Ich möchte mich zunächst auf Teil (a) konzentrieren.
Hier ist die Webseite, mit der ich anfange: Ссылка
Hier gibt es ein Problem: Der Link gibt die ersten zehn Ziele an, und wenn Sie dann auf "Weitere beliebte Ziele anzeigen" klicken, wird die Liste erweitert. Es scheint, als ob es eine Javascript-Funktion verwendet, um dies zu erreichen. Leider bin ich nicht mit Javascript vertraut, aber ich denke, der folgende Chunk kann Hinweise geben, wie es funktioniert:
%Vor%Ich habe ein paar nützliche Web-Scraping-Pakete für R gefunden, wie RVST, RSelenium, XML, RCurl, aber von diesen scheint nur RSelenium in der Lage zu sein, dies zu lösen, wobei ich gesagt habe, dass ich immer noch nicht in der Lage war um es auszuarbeiten.
Hier ist ein relevanter Code:
%Vor%Die letzte Zeile sollte hier den Trick machen, aber ich bin mir nicht sicher, welche Funktion ich hier aufrufen muss.
Sobald ich es geschafft habe, diese Liste zu erweitern, werde ich in der Lage sein, die Links für jedes Ziel auf die gleiche Weise zu erhalten, wie ich Teil (b) lösen würde und ich denke, dass ich das schon gelöst habe (für Interessierte):
%Vor%Wie in Schritt (c) habe ich einige hilfreiche Links gefunden, die hilfreich sein könnten: Ссылка Ссылка
Wenn Sie Tipps haben, wie Sie die Liste der Top-Destinationen erweitern oder die anderen Schritte auf eine intelligentere Art und Weise durchgehen können, lassen Sie es mich wissen, ich würde mich sehr freuen, von Ihnen zu hören.
Vielen Dank im Voraus!
Grundsätzlich können Sie versuchen, ein Klickereignis an die <div class="morePopularCities">
zu senden. Etwas wie das:
Um alle Orte zu erweitern, können Sie die obige Logik möglicherweise in einer while-Schleife wiederholen. Klicke solange auf <div>
, bis keine weiteren Objekte verfügbar sind (bis div
nicht mehr auf der Seite steht):
Ich spreche nicht fließend in R
, vielleicht findest du mein Codebeispiel nicht schön, zögere nicht, es zu empfehlen.