2017-07-14 1 views
1

Ich arbeite an einem Projekt, wo ich eine Seite so kratzen möchte, um die Stadt der Herkunft zu bekommen. Ich versuchte, den CSS-Selektor zu verwenden:“.type-12 ~ .type-12 + .type-12" Jedoch habe ich den Text in R. nichtnicht scraping die HTML-Quelle, aber die eigentliche Website

Link erhalten: https://www.kickstarter.com/projects/1141096871/support-ctrl-shft/description

I rvest verwenden und und die Funktion read_html.

Es scheint jedoch, dass die Quelle einige Skripts enthält. Gibt es eine Möglichkeit, die Website zu scrappen, nachdem die Skripte ihre Ergebnisse zurückgegeben haben (wie Sie es mit einem Browser sehen)?

PS ich ähnliche Fragen gesucht, aber die Antwort haben finden ..

Code:

main.names <- read_html(x = paste0("https://www.kickstarter.com/projects/1141096871/support-ctrl-shft/description")) # feed `main.page` to the next step 
    names1 <- main.names %>% # feed `main.page` to the next step 
    html_nodes("div.mb0-md") %>% # get the CSS nodes 
    html_text()# extract the text 

Antwort

2

Sie sollten es nicht tun. Sie bieten eine API, die Sie hier finden: https://status.kickstarter.com/api

Verwendung von APIs oder Ajax/JSON Anrufe ist in der Regel besser, da

  1. Der Server nicht überstrapaziert ist, weil Ihr Scrapper Besucher jeden Link, es finden können unnötige der Verkehr. Das ist schlecht für die Geschwindigkeit Ihres Programms und schlecht für die Server der Site, die Sie scrapen.

  2. Sie müssen nicht darum kümmern, dass sie

Vor allem der zweite Teil sollten Sie Interesse, da es Stunden Erkenntnis nehmen einen Klassennamen oder die ID und Ihr Code wird nicht funktionieren mehr verändert die Die Klasse gibt keinen Wert mehr zurück.

Aber um Ihre Frage zu beantworten:

Wenn Sie die richtigen Schaber verwenden, können Sie alle finden, was Sie wollen. Welche Werkzeuge verwendest du? Es gibt Möglichkeiten, Daten zu erhalten, bevor die Seite geladen wird oder danach. Sie können die JS auf der Website separat ausführen und finden Sie versteckte Inhalte oder Dinge wie display:none Css-Klassen finden ...

Es hängt wirklich davon ab, was Sie verwenden und wie Sie es verwenden.

+0

Diese API liefert keine Informationen über das Herkunftsland oder andere Informationen über das Projekt. Oder fehlt mir etwas? Die einzigen Möglichkeiten, die ich sehe, sind im Zusammenhang mit Aktionen oder Wartungsupdates. – nemja

+0

http://syntaxi.net/2013/03/24/let-s-explore-kickstarter-s-api/ https://github.com/markolson/kickscraper Und wieder. Welche Werkzeuge verwendest du? Mit BeatifulSoup (sein Python nicht R) konnte ich die Infos bekommen. – hansTheFranz

+0

Ich benutze R: main.names <- read_html (x = paste0 ("https://www.kickstarter.com/projects/1141096871/support-ctrl-shft/description")) # feed 'main.page' zu der nächste Schritt names1 <- main.names%>% # feed 'main.page' zum nächsten Schritt html_nodes (" div.mb0-md ")%>% # Holen Sie sich die CSS-Knoten html_text() # extrahieren Sie die Filmnamen (Siehe bearbeiten) – nemja

Verwandte Themen