Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Google Search i R

Mój znajomy z anglistyki pisze pracę, chciałby uzyskać informacje na temat liczby wyników dla dosyć długiej listy słów. Czy można to zadanie wykonać z poziomu R ?

Znalazłem temat, jednak przy pierwszym podejściu zbyt dużo nie zrozumiałem, link poniżej. Kiedyś napisałem kod do ściągnięcia dużej ilości danych finansowych zapisanych w stronie html (chyba z google finance, a może z innej strony) i wyciągnąłem z nich potrzebne informacje, nie okazało się to zbytnio skomplikowane. Czy można zrobić coś takiego z google search lub Bing'iem ? Ale po kilkudziesięciu zapytaniach i tak zostanę uznany za bota ;)

http://r.789695.n4.nabble.com/R-program-google-search-...
Maciej B.

Maciej B. Doktorant

Temat: Google Search i R

Znalazłem kod na http://r-bloggers.com, dokładne źródło: http://www.r-bloggers.com/playing-with-xml-package-get...


require(XML)
library(stringr)
library(RCurl)

GoogleHits <- function(input)
{
url <- paste("https://www.google.com/search?q=\"",
input, "\"", sep = "")

CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "")
script <- getURL(url, followlocation = TRUE, cainfo = CAINFO)
doc <- htmlParse(script)
res <- xpathSApply(doc, "//div[@id='subform_ctrl']/*", xmlValue)[[2]]
cat(paste("\nYour Search URL:\n", url, "\n", sep = ""))
cat("\nNo. of Hits:\n")
return(as.integer(gsub("[^0-9]", "", res)))
}

# Example:
GoogleHits("R%Statistical%Software")

lapply(list_of_search_terms, GoogleHits)

# komentarz jest, że po 300 wyszukaniach google blokuje
Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Google Search i R

Maciej B.:
Znalazłem kod na http://r-bloggers.com, dokładne źródło: http://www.r-bloggers.com/playing-with-xml-package-get...


require(XML)
library(stringr)
library(RCurl)

GoogleHits <- function(input)[/quote]> {[quote] url <- paste("https://www.google.com/search?q=\"",[/quote]> input, "\"", sep = "")[quote]
CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "")
script <- getURL(url, followlocation = TRUE, cainfo = [/quote]> CAINFO)[quote] doc <- htmlParse(script)[/quote]> res <- xpathSApply(doc, "//div[@id='subform_ctrl']/*", > xmlValue)[[2]][quote] cat(paste("\nYour Search URL:\n", url, "\n", sep = ""))
cat("\nNo. of Hits:\n")
return(as.integer(gsub("[^0-9]", "", res)))
}

# Example:
GoogleHits("R%Statistical%Software")

lapply(list_of_search_terms, GoogleHits)

# komentarz jest, że po 300 wyszukaniach google blokuje


Super, muszę to jeszcze przejrzeć, teraz mam jeszcze inne pytanie jak usunąć wszystkie znaki :

" ,/()!?.-':@12345\";’67&89+0<>“”–…#$*~’=‘[%]_`\\°|\tí¶ü¦Â®¬á"

z ciągu znaków klasy "character" i zastąpić je spacjami, znam sub() i gsub() niestety nie potrafię jeszcze sprawnie konstruować wyrażeń regularnych ? A usuwanie znaków specjalnych wymaga dogłębnej znajomości umiejętności ich budowy.

Pozdrawiam

Już wiem :
str_replace_all(x, "[^[:alnum:]]", " ")
Kamil Bęczyński edytował(a) ten post dnia 24.04.12 o godzinie 16:20
Maciej B.

Maciej B. Doktorant

Temat: Google Search i R

Już wiem :
str_replace_all(x, "[^[:alnum:]]", " ")

Jak zastosujesz str_replace_all(x, "\\D", " ") lub gsub('\\D','',x) to usunie Ci wszystkie znaki i zostawi tylko liczby.
Twój kod nie usuwa "â í ü Â á".Maciej B. edytował(a) ten post dnia 24.04.12 o godzinie 16:36
Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Google Search i R

Maciej B.:
Już wiem :
str_replace_all(x, "[^[:alnum:]]", " ")

Jak zastosujesz str_replace_all(x, "\\D", " ") lub gsub('\\D','',x) to usunie Ci wszystkie znaki i zostawi tylko liczby.
Twój kod nie usuwa "â í ü Â á".

A w jaki sposób pozostawić tylko liczby i litery ?

Odp.:
str_replace_all(x,"[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]",
" ")
Kamil Bęczyński edytował(a) ten post dnia 24.04.12 o godzinie 18:46
Maciej B.

Maciej B. Doktorant

Temat: Google Search i R

Tak będzie krócej.

str_replace_all(x,"[^A-Za-z0-9]|\\D"," ")
Maciej B. edytował(a) ten post dnia 24.04.12 o godzinie 19:19
Kamil Bęczyński

Kamil Bęczyński R, SAS, analizy

Temat: Google Search i R

Tak, racja, chyba za bardzo wziąłem sobie do serca radę, by nie używać konwencji odnośnie zakresów znaków, gdyż poszczególne programy R, Java, Python, różnią się w tym zakresie.

Podobne tematy


Następna dyskusja:

R w Google




Wyślij zaproszenie do