使用RSelenium / XML Scrape Comments(使用javascript生成)

时间:2014-10-08 22:29:26

标签: javascript xml r selenium

我想从在线新闻中删除评论。

这是一个例子:Story

我相信会遇到与此问题相同的问题:Web data scraping (online news comments) with Scrapy (Python)

但由于我只与R合作,我可以理解这些挑战(@yuvi感谢详细解答)但是无法为我的问题翻译解决方案。

这个给了我第一个评论,但同样,所有其他评论都隐藏在某个地方:

library(RSelenium)
checkForServer()
startServer()

remDr <- remoteDriver(remoteServerAddr = "localhost" 
                  , port = 4444
                  , browserName = "firefox"
)
remDr$open()

remDr$navigate("http://www.tagesanzeiger.ch/schweiz/standard/Auns-sagt-Ja-zur-EcopopInitiative/story/27047608")

kommentare <- remDr$findElement(using = 'xpath', "//*[(@class = 'message')]")
kommentare$getElementAttribute("outerHTML") #which returns me the first comment

提前致谢。

1 个答案:

答案 0 :(得分:1)

评论位于div id=allComments,您可以访问此元素并返回其HTML:

kommentare <- remDr$findElement('css', "#allComments")
out <- kommentare$getElementAttribute("outerHTML")[[1]]

xData <- htmlParse(out, encoding = "UTF-8")
> head(xData["//*[(@class = 'message')]", fun = xmlValue])
[[1]]
[1] "Das einzige Richtige!! Das Schweizer-Volk wurde schon zu oft angelogen. JA zu ECOPOP"

[[2]]
[1] "Der Wutbürger ist selten ein guter Ratgeber!!"

[[3]]
[1] "ich bin nicht wütig, sondern beunruhigt, dass unsere Kultur, die nun wirklich viel Gutes hervorgebracht hat, so einem Hass ausgesetzt ist von den eigenen Landsleuten. Ich schätze die Vielfalt der Kulturen und Völker, auch meine eigene. Multikulti ist nichts natürlich Gewachsenes, sieht eher aus als Resultat einer tiefen Respektlosikeit gegenüber dem Leben selber."

[[4]]
[1] "Komme eben von der AUNS-Versammlung zurück. Muss Ihnen sagen, Herr Brand, dass ich keine Wutbürger angetroffen habe, sondern völlig normale, weltoffene und humorvolle Schweizer mit Weitblick. Einzig als der Vizepräsident der Grünen Luca Maggi zu Ecopop und der Goldinitiative Kontra gab, ging teilweise ein Raunen durch die Reihen. Meines Erachtens allerdings hat er seine Sache sehr gut gemacht – auch wenn seine Ansichten nicht gegenteiliger zu meinen sein könnten. Kommt zwar sehr selten vor, aber heute habe ich einmal mehr wieder nicht in Blochers Sinne abgestimmt. Gemäss Nicht-SVP-Lesart müssten solch \"faschistischen\" Kreise, in welchen ich verkehre, Abweichler wie mich ja mit Schimpf und Schande verbannen. Doch stattdessen haben wir Ja- und die Nein-Stimmenden einander zugeprostet :-)"

[[5]]
[1] "Frau Weber, Kultur ist nun mal nichts Statisches. Was Sie als Multikulti bezeichnen, gab es schon zur Zeit der alten Griechen in grossen Handelsstädten. Wo der Wohlstand ist, hat man sich schon immer getroffen, niedergelassen, einige sind geblieben, haben geheiratet, sich vermehrt ... und nach und nach hat sich Kultur leicht verändert. Was wir heute als \"unsere\" Kultur bezeichnen ist auch über Jahrhunderte gewachsen und nicht vom Himmel gefallen. Im übrigen: Der \"Multikulti\"-Nachwuchs assimiliert sich meist ziemlich stark an die Kultur im Gastland."

[[6]]
[1] "Herr Brand manchmal braucht es die Stimmen der Wutbürger. Wutbürger wird nur einer der ständig angelogen wird. Und wie das Sprichwort es sagt \"Lügen haben kurze Beine\""

除此之外,评论在http://www.tagesanzeiger.ch/api/articles/27047608/comments

以JSON格式提供
myComments <- fromJSON("http://www.tagesanzeiger.ch/api/articles/27047608/comments")

> lapply(myComments$comments[1:6], '[[', 'message')
[[1]]
[1] "Warum ich gezwungen werde bei Ecopop JA zu stimmen? Weil der BR bis heute keine Anstalt macht, die angenommene Initiative zur Masseneinwanderung umzusetzen! Oder glaubt der BR in allem Ernst, dass er unserem Land eine jährliche Zuwanderung von 80'000 Menschen zumuten könne?"

[[2]]
[1] "Durch Ecopop kommen gewissenlose Anklagevertreter zur Macht, weil sie den Schweizern wohlklingende Versprechen machen. Doch sie lügen! Sie halten ihre Versprechungen nicht. Sie werden das nie tun! Scharfmacher befreien sich selbst, aber sie versklaven das Volk. Lasst uns nun dafür kämpfen, die Schweiz zu befreien \023 die nationalen Schranken niederzureißen \023 die Gier, den Hass und die Ausländerfeindlichkeit beiseite zu werfen. Lasst uns kämpfen für eine Schweiz der Vernunft \023 eine Schweiz, in der Einwanderung und Fortschritt zu unser aller Glück führen werden. Schweizer, im Namen der direkten Demokratie, lasst uns zusammen stehen! Ein Federzug von Schweizer Hand, und neu erschaffen wird die Erde. Blicke empor in das Licht der Hoffnung, liebe Schweiz! Blicke empor und stimme NEIN zu Ecopop!"

[[3]]
[1] "viele spekulieren hier, dass es ein ja oder ein nein am 30.11 gäbe, was momentan reines Kaffisatzlesen ist. Das hängt schlussendlich alles vom Mobilsierungspotential der Befürworter oder Gegner ab. Was sicher ist: wenn die Gegner wie bei der MEI den Einsatz verschlafen, in der Annahme, dass eh ein nein resultieren werde, könnte es ein böses Erwachen am 30.11 geben."

[[4]]
[1] "Schon aus der Psychoanalyse weiss man, dass Menschen mit paranoiden Vorstellungen, sich darin verbissen selbst eingeschlossen haben, zuerst einmal ihren Weg weiter gehen müssen, so tief wie möglich fallen, um dann auf diesem neuen Boden veränderter Erkenntnis wieder eine Richtung bestimmen können. Darin erkenne ich absolut eine Parallele zu einer wachsend verbreiteten und infizierten Haltung einer Menschenmasse bereits, die noch schwer aufzuhalten ist. Es existiert keine EU- Diktatur, es existiert aber der Begriff \" psychologische Kopfwäsche und florierende Ansteckung \", bis zur Massenbegeisterung, kein unbekanntes Phänomen, wobei Konsequenzen und Folgen gar keinen realen Platz mehr finden können."

[[5]]
[1] "Jetzt mal ganz abgesehen von ecopop:<BR>Dieser  Reimann sollte hinter die Bücher gehen! <BR>1. Die vorgeschlagene Verfassungsänderung bezüglich Gold mag ja in der Theorie schön sein, funktioniert aber nicht in der Realität! <BR>2. schafft diese Schnapsidee die Unabhängigkeit der Nationalbank ab und verunmöglicht nötige monetäre Massnahmen, die von ausserordentlicher Wichtigkeit sind für die heutige geldpolitische Lage."

[[6]]
[1] "Hallo Leute unbedingt ein Ja in die Urne-denn unsere Politiker verstehen nicht dass das Volk das Sagen hat. Bis heute wurde nicht mal eine Annäherung an unsere  angenommene Initiative ( Zuwanderung in Erwägung beschlossen. Also ein JA 'JA' JA-  wenn unsere Kinder( spätere Generation) noch später die Möglichkeit haben sollen günstigen Wohnraum und vor allem Arbeit. DANKE !"