2015-01-22 1 views
0

Google 번역에서이 문제를 발견했을 때 웹 페이지에서 정보를 가져올 수 있는지 확인하기 위해 Jsoup과 다른 것을 시도했습니다. 나는 내 프로그램이 번역 된 페이지로 직접가는 URL을 뱉어 낼 수있을 정도로 충분히 멀리 갔지만, 소스 코드를 추출하려고하면 에서 코드를 가져온다. 번역 중 ... 페이지. 여기 일본의 페이지의 예 링크입니다 :Jsoup를 사용하여 번역 된 페이지의 소스 코드에 액세스하는 방법

http://translate.google.com/translate_p?sl=ja&tl=en&u=https://mixi.jp/&depth=1&usg=ALkJrhhBn74JodxnRkFSjqBuPEZ2RJRJAQ

(이 링크는 잠시 후에 다시 원래의 구글 번역 페이지 변경)

이 URL을 신속하게 히트 Ctrl 키를 열면 + u, 이전에 얘기했던 번역 페이지의 소스 코드를 얻을 수 있습니다 (Jsoup가이 URL에서 추출 할 때 수행하는 작업입니다). 이 후에 오는 소스 코드 (번역 된 페이지)에 어떻게 액세스합니까?

나는 이미 번역 된 페이지에서 링크를 가져 와서 그것을 따르려고했지만, 내가 원하는 결과를주지 못했다. 단지이 코드는 iframe을

//GET INTO FIRST FRAME OF GOOGLE TRANSLATE PAGE  
    //translate web page from English to English through google translate 
    String url1 = "http://translate.google.com/translate?sl=ja&tl=en&u=https://mixi.jp/"; 

    //create doc to hold html content 
    Document document1 = Jsoup.connect(url1).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/17.0 Firefox/17.0").get(); 

    //take url1 to web page where actual content is 
    Element link = document1.select("iframe").first(); 
    String linkSrc1 = link.attr("abs:src"); 

    System.out.println("linkSrc1: " + linkSrc1); 
    //END OF GET INTO FIRST FRAME OF GOOGLE TRANSLATE PAGE 

감사지나 연결되는 링크를 내뿜으며 ... 내가 번역 뒤에 오는 페이지 페이지에 액세스

를 도와주세요!

답변

0

자동으로 iframe을로드하지 못합니다.

"뒤에 오는 페이지 ..."은 실제로 iframe에로드됩니다. 여기

당신이 그것을 얻을 수있는 방법입니다 :

Document doc = Jsoup.connect("http://translate.google.com/translate_p?sl=ja&tl=en&u=https://mixi.jp/&depth=1&usg=ALkJrhiYgjK_C-VB2hFQ6iJp08gETWw9yQ").get(); 

Elements elements = doc.select("iframe[name=c]"); 
if (elements.size() == 1) { 
    Document pageAfterTranslation = Jsoup.connect(elements.first().attr("abs:src")).get(); 
    // ... 
} else { 
    throw new RuntimeException("Not exactly ONE iframe found..."); 
} 
+0

헤이 스테판은, 감사는 대답을하지만, 어떤 이유로 링크는 지금은 iframe 원래 구글 번역 페이지로 이동합니다. 내가이 질문을 올렸을 때 나는 이미 그것을 지나쳤다. 더 일찍 설명하지 않은 것에 대한 나의 실수! iframe을 전달하는 페이지에 대한 링크를 어떻게 내뱉을 수 있는지 보여주기 위해 코드를 업로드했습니다. 그러나 ** Translating ... ** 페이지는 내가 작성한 프로그램을 사용할 때 일시적으로 튀어 나오고 iframe없이 실제로 번역 된 페이지를 보여줍니다. –

+0

@Fluke_of_Luke 만족스러운 해결책을 찾았 으면 답안으로 게시하고 허용 된 것으로 표시하십시오. – Stephan

+0

iframe에서 벗어난 링크에서 소스 코드를 얻는 것에 대해 이야기하고 있습니다. 해당 링크에 액세스하려고하면 번역 ... 페이지의 소스 코드가 바로 뒤의 페이지와 반대가됩니다. –