gpt4 book ai didi

java - Jsoup从span类获取信息

转载 作者:行者123 更新时间:2023-12-01 09:17:05 27 4
gpt4 key购买 nike

我想用 Jsoup 获取这些信息: enter image description here

我需要获取 kisaltilmis 这个词,这是我迄今为止尝试过的:

Document doc = Jsoup.connect("https://translate.google.bg/?hl=bg#en/tr/abbreviated")
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.get();

Elements newsHeadlines = doc.select("#result_box > span");

for(Element e : newsHeadlines){
System.out.println(e.toString());
}

最佳答案

您尝试获取的翻译是通过 AJAX 调用生成的。所以在页面源码中找不到这个信息。

实际查询转到https://translate.google.bg/translate_a/single。它返回一个如下所示的文件

[[["kısaltılmış","abbreviated",,,0],...

不幸的是,由于逗号之间缺少值,它不是有效的 JSON 文件,因此应手动提取信息。

这是从服务器加载信息的代码片段

System.setProperty("http.agent", "Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
final String query = "abbreviated";
final String urlPrefix = "https://translate.google.bg/translate_a/single?client=t&sl=en&tl=tr&hl=bg&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&source=bh&ssel=0&tsel=0&kc=1&tk=811697.665342&q=";
try (final InputStream stream = new URL(urlPrefix + URLEncoder.encode(query, "UTF-8")).openStream()) {
final String line = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8)).readLine();
System.out.println(line);
}

请注意,Google 对使用 Google Translate API 收费,因此,如果您过于频繁地尝试获取翻译,您可能会被禁止。

关于java - Jsoup从span类获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40468382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com