2016-07-05 13 views
0

kratzen Ich möchte eine Website kratzen, die alle Qualifikationen in Südafrika aufgeführt (http://allqs.saqa.org.za/search.php)Wie mehrere Seiten der Suchergebnisse mit R

Wenn Sie zuerst auf den Link gehen, werden Sie bemerken, dass seine eine Seite mit Suchkriterien. Ich möchte alle Ergebnisse scrappen, also gebe ich nichts in die Suchkriterien ein - klicke einfach auf "GO", was dann die Suchergebnisse zurückgibt, die ich abkratzen möchte. Die Ergebnisse werden für 20 Datensätze angezeigt und es gibt 16521 Ergebnisseiten. Zu diesem Zeitpunkt ist die URL immer noch wie oben.

Ist es möglich, diese Ergebnisse zu kratzen? Von der Online-Suche, die ich gemacht habe, habe ich Lösungen gefunden, wo die Suchkriterien der Seite Ergebnisse in der URL definiert sind. Doch für die Seite, die ich dies kratzen wollen, ist nicht Option

Ideal für andere Vorschläge bin ich offen aber Ich mag würde R verwenden, um die Schaben zu tun, wenn es nicht möglich, in R

Vielen Dank Ria

+0

Was haben Sie versucht? Wo steckst du fest? An dieser Stelle ist diese Frage zu allgemein. – JasonAizkalns

+0

Ich schaute auf die Website und es scheint nur die POST-Methode wird unterstützt. Ich habe versucht, die Submit-Aktion von POST zu GET zu ändern, was mir eine URL mit den definierten Suchkriterien gab, aber das brachte mich nur zurück zur Hauptsuchseite. Sie müssen ein Scraping-Tool finden, das POST unterstützt. – Teajay

Antwort

0

R hat ein Curl-Paket, das die POST-Methode unterstützt. Der folgende Code sollten Sie den Einstieg:

library(curl) 
h = new_handle() 
handle_setopt(h, copypostfields = "cat=qual&GO=Go") 
req = curl_fetch_memory("http://allqs.saqa.org.za/search.php", handle=h) 
cat(rawToChar(req$content)) 

Hinweis: dieser spuckt nur den Inhalt der Web-Seite nach dem Absenden des Formulars. Das Parsen der Daten in einen Datenrahmen wird als Übung überlassen. Tippe "? Curl" in R, um ein Tutorial zu sehen.