簡體   English   中英

如何使用Jsoup訪問翻譯頁面的源代碼

[英]How to access source code of translated page using Jsoup

當我使用Google翻譯遇到這個問題時,我正在嘗試使用Jsoup進行其他操作,以查看是否可以從網頁中提取信息。 我已經走了足夠遠的距離,以便我的程序可以吐出直接進入已翻譯頁面的url,但是當我嘗試從中提取源代碼時,它將從Translator ...頁面中獲取代碼。 這是日語頁面的示例鏈接:

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

(過一會兒,此鏈接將變回原始的Google翻譯頁面)

如果打開此URL並快速按ctrl + u,您將獲得我之前所討論的“翻譯”頁面的源代碼(這是當我從此URL中提取Jsoup時所做的事情)。 如何訪問此之后的源代碼(在已翻譯的頁面上)?

我已經嘗試過從翻譯后的頁面中提取鏈接並關注它,但是它沒有給我我想要的結果。 請僅幫助我訪問翻譯后出現的頁面...

這段代碼會彈出一個鏈接,使您超越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

謝謝!

Jsoup不會自動加載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...");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM