2016-06-07 11 views
3

Ich übe Web Scraping mit dem RVP-Paket in R. Diese Seite hat ist eine großartige Anleitung bisher. (http://zevross.com/blog/2015/05/19/scrape-website-data-with-the-new-r-package-rvest/). Mit dem Tool Selector Gadget kann ich die Referenz der Klasse oder des Div-Elements auf die Elemente identifizieren, die ich möchte (soweit ich weiß).Extrahieren von Titel von Link in R

Also ging ich einfach zu Wikipedia und versuche, die Liste der US-Präsidenten zu extrahieren. Der Link zu dieser Seite lautet https://en.wikipedia.org/wiki/List_of_Presidents_of_the_United_States. Selector Gadget sagte mir, dass die Elementklasse/div/???? (nicht sicher, was es zu nennen ist) ist "groß a".

Hier ist mein Code so weit:

site = read_html("https://en.wikipedia.org/wiki/List_of_Presidents_of_the_United_States") 
fnames = html_nodes(site,"big a") 

Und eine Teilausgabe ist:

{xml_nodeset (44)} 
[1] <a href="/wiki/George_Washington" title="George Washington">George Washington</a> 
[2] <a href="/wiki/John_Adams" title="John Adams">John Adams</a> 
[3] <a href="/wiki/Thomas_Jefferson" title="Thomas Jefferson">Thomas Jefferson</a> 
[4] <a href="/wiki/James_Madison" title="James Madison">James Madison</a> 
[5] <a href="/wiki/James_Monroe" title="James Monroe">James Monroe</a> 
[6] <a href="/wiki/John_Quincy_Adams" title="John Quincy Adams">John Quincy Adams</a> 
[7] <a href="/wiki/Andrew_Jackson" title="Andrew Jackson">Andrew Jackson</a> 
[8] <a href="/wiki/Martin_Van_Buren" title="Martin Van Buren">Martin Van Buren</a> 

Great! Also habe ich die Namen mit Links extrahiert! Ich möchte nur die Namen, also bin ich mir nicht sicher, wie ich hier vorgehen soll. Gibt es eine Möglichkeit, die Namen zwischen den Link HTML-Code leicht zu greifen? Oder sollte ich stattdessen ein anderes Element mit der Funktion html_nodes greifen? Ich fühle mich wie nah!

Vielen Dank für jede Hilfe.

+1

'html_text (fnames)' sollte es tun. – cory

+0

Der Verstand ist durchgebrannt. Das hat funktioniert! Ich danke dir sehr!!! – user137698

+0

Oder ... 'html_attr (fnames," title ")' – cory

Antwort

2

Es gibt zwei Quellen für die Namen. Das Titelattribut und der Text. Sie können etwas anders formatiert sein, oder man kann mittlere Initialen oder was auch immer enthalten. Verwende den, der dir am besten gefällt.

html_attr(fnames, "title")

ODER

html_text(fnames)

Verwandte Themen