[英]How to access source code of translated page using Jsoup
當我使用Google翻譯遇到這個問題時,我正在嘗試使用Jsoup進行其他操作,以查看是否可以從網頁中提取信息。 我已經走了足夠遠的距離,以便我的程序可以吐出直接進入已翻譯頁面的url,但是當我嘗試從中提取源代碼時,它將從Translator ...頁面中獲取代碼。 這是日語頁面的示例鏈接:
(過一會兒,此鏈接將變回原始的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.