2012-05-21 3 views
1

всеGoogle Результаты поиска Кодирование в китайском

Я работал на R программы для Google поиск добычи данных.
Пока мои коды работают хорошо, за исключением проблемы традиционного китайского кодирования. Я работаю в среде Linux ...

Google <- function(input) 
    { 
    require(XML) 
    require(stringr) 
    require(RCurl) 
    hits <- GoogleHits(input) 
    if(hits >= 1000){ 
     start.num = seq(0,900,100) 
    }else if(hits < 1000){ 
     start.num = seq(0,hits,100) 
    } 
    for(i in 1:length(start.num)){ 
     start = start.num[i] 
     url <-paste("https://www.google.com/search?as_epq=",input, 
     "&as_occt=title&num=100&ie=UTF-8&start=",start, sep = "") 


    CAINFO = paste(system.file(package="RCurl"), "/CurlSSL/ca-bundle.crt", sep = "") 
    script <- getURL(url, followlocation = TRUE, cainfo = CAINFO) 

    # using htmlParse() to re-organize the whole structure 
    # the Chinese encoding shows quite well here 
    # (but the structure is not a vector)  
    doc <- htmlParse(script) 

    # Wanna extract out the searched keyword 
    # which is tagged by "<b>keyword</b>" 
    # here, I take the keyword "統計" for example 
    extract <- str_extract_all(html_str, "<b>統計</b>") 

    # here is the problem... which extract only takes a vector as an argument 
    # so below will return an error 
    print (extract) 

} 
    } 

Таким образом, проблемы, с которыми я столкнулся, все включены в комментарии.

1), если не используется htmlParse(), извлекаемые данные не могут быть представлены в известных китайских иероглифов

2) если я пытался преобразовать данные в вектор (с применением сценария < - lapply (URL, GetURL)), хотя метод str_extract_all() может быть использована, проблема кодирования возникает ...

Кроме того, китайцы здесь я имела в виду это традиционный китайский

Любые комментарии или предложения действительно оценены!
Спасибо заранее.

+0

Где Определен ли GoogleHits()? – marbel

ответ

2

Я нашел ошибку! Себя!
Так что я здесь, чтобы ответить на вопрос.

Проблема заключается в параметре в заданном url link!

Поскольку кодирование китайского является UTF-8,
есть два параметра, которые обязательно нужно,
ОЕ = UTF-8, то есть & = UTF-8 !!
(который на веб-сайте разработчиков в Google,
это говорит о том, что ае = UTF-8 не должны быть определены,
, и именно поэтому я пропустил часть ...)

+0

** Добро пожаловать в StackOverflow! ** Поздравляем за обнаружение ошибки! Сам! –