大神论坛

找回密码
快速注册
查看: 319 | 回复: 0

[经验分享] 爬取有道翻译结果实现免登陆 附源码

主题

帖子

0

积分

初入江湖

UID
666
积分
0
精华
威望
0 点
违规
大神币
68 枚
注册时间
2023-10-14 10:49
发表于 2023-12-16 22:51
本帖最后由 eoven8 于 2023-12-16 22:51 编辑

因工作需要,在看英/日文文档,愣是看不出所以然

写了个导入文档自动翻译生成新的文档,其中引用了如下的翻译方法,目前我自己测试是没什么限制

已知支持英汉互译,理论上支持各种外文译中,自测,我没需求,就没测试

就几行代码,写的不优雅,但确实可用,自己看吧,老规矩,单纯分享,大佬勿喷,谢谢啦~

附图:

代码:

package org.example;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;

public class Main {
public static void main(String[] args) {
// 待翻译的关键词
String kerWord = "如果你有梦想的话,就必须捍卫它。那些一事无成的人总是想告诉你,你也成不了大器。如果你有理想的话,就要去努力实现。";

String url = "http://m.youdao.com/translate"; // 构建搜索URL
HttpRequest request = HttpRequest.post(url).form("inputtext", kerWord);

HttpResponse response = request.execute();
// 翻译结果的起始和结束文本
String startText = "<ul id=\"translateResult\">\n <li>";
String endText = "</li>\n </ul>";

String text = response.body();

// 获取翻译结果的起始和结束位置
int startIndex = text.indexOf(startText) + startText.length();
int endIndex = text.indexOf(endText);
// 判断是否找到翻译结果,并输出翻译结果
if (startIndex != -1 && endIndex != -1 && startIndex < endIndex) {
String middleText = text.substring(startIndex, endIndex);
System.out.println("翻译结果为:" + middleText);
} else {
System.out.println("未找到匹配的起始和结束文本");
}
}

}


注:若转载请注明大神论坛来源(本贴地址)与作者信息。

返回顶部