【问题标题】:How to extract google translated text from google translate website using jsoup in android如何在android中使用jsoup从谷歌翻译网站提取谷歌翻译文本
【发布时间】:2018-03-09 19:13:20
【问题描述】:

我正在使用 jsoup 从 android 的网页中检索数据。 在这里,我使用此 URL“https://translate.google.com/#hi/en/bharat%20mera%20desh%20hai”将“bharat mera dekh hai”翻译为“印度是我的国家”。 我想得到英文翻译文本作为输出,但我无法得到这个。

这是我提取英文文本的代码:

 @Override
        protected Void doInBackground(Void... params) {
            try {
                // Connect to the web site
                Document document = Jsoup.connect(url).get();
                Elements englishText = document.select("span#result_box");
                EngText =englishText.text() ;
               } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

这是 HTML 内容:

<span id="result_box" class="short_text" lang="en">
     <span class="" contenteditable="false" tabindex="-1">
            India is my country
     </span>
</span>

但我在 EngText 变量中得到空字符串值。 但是,我可以从网站上检索其他静态文本,但无法获取英文翻译文本。

【问题讨论】:

  • 既然可以使用google-translate api,为什么还要使用jsoup? cloud.google.com/translate/docs
  • @waqaslam Google API 现已付费。我的问题是我无法得到那个英文文本

标签: javascript android web-crawler jsoup


【解决方案1】:

您尝试获取的值不是初始 html 的一部分,而是在页面加载后由 javascript 设置的。您可以通过在浏览器中禁用 javascript 来检查它。

Jsoup 只获取静态 html,不执行 javascript 代码。

要获得您想要的,您应该考虑使用HtmlUnitSelenium 之类的工具。

【讨论】:

  • 你能推荐我一个更好并且与android兼容的女巫吗。
  • 我不是 Android 专家。您必须自己进行研究或使用 softwarerecs.stackexchange.com
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多