日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

制作一个Java即时翻译器——网页抓取调用百度翻译API

發布時間:2023/12/3 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 制作一个Java即时翻译器——网页抓取调用百度翻译API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一次在CSDN寫博客,想著記錄一下自己一些作業過程中的問題和心得,沒想到要用Markdown語言寫,說實話我還真沒用過呢,還要邊學邊寫。話不多說,進入正題。

1.引言

平時在上網瀏覽網站或者閱讀一些英文文獻的時候,遇到不明白意思的單詞導致整句話不太理解時總得打開百度
然后搜索意思,頻繁地打開翻譯頁面讓整個過程顯得很繁瑣,或者分屏操作一邊放文獻一邊放翻譯的時候,文章或網站會被壓縮,排版會有變化
兩種方法都不夠合適,所以我就想做一款即時翻譯的軟件,需要達到的功能有:

  • 常駐在屏幕最頂層,通過監聽剪切板來獲取復制的單詞或長句,然后在軟件頁面自動進行翻譯。同時有一些附加功能:支持中文與多門外語互譯、監聽剪切板或者根據自己輸入的內容翻譯等。
  • 加入記錄單詞功能,查詢后可以添加單詞,并提供復習回顧的頁面。

2.具體實現思路

  1. 使用Transferable變量通過getSystemClipboard()函數來獲取剪切板的內容getContent(),返回剪切板所得到的數據getTransferData()。
  2. 獲取翻譯的內容:
  • 第一種方式:到網頁源代碼里進行截取和回傳。在百度首頁查找“translate”單詞,然后打開開發人員工具搜索“翻譯”“轉變”等幾個意思,最后在標記里面發現網頁顯示的翻譯都存在于這個標記里面。連續嘗試了幾個單詞后發現都是在標簽里,那么就可以確定這種方法的思路了。

首先明確是要去 http://www.baidu.com/s?wd= 這個網站找尋標簽,那么就分別定義三個變量來代表網站、標簽頭和標簽尾。然后定義一個HttpURLConnection對象來建立起連接,通過BufferedReader將獲得的輸入流數據進行整理,獲取翻譯內容放入字符串變量,作為函數的返回值來調用。

  • 第二種方式:使用百度翻譯API。首先要去百度翻譯http://api.fanyi.baidu.com 進行開發者申請,申請通過后會獲得一個APP_ID和SECURITY_KEY,這是相當于后面要調用API的賬號密碼。然后下載網站底部的Java Demo,提取出HttpGet.java、MD5.java、TransApi.java三個文件,放入新建的一個package中。上述三個是百度官方寫的調用API的方法。

HttpGet.java是建立起http連接的一個類,將輸入的字符串進行URL編碼,轉換為%20形式,并且讀取服務器的數據,進行翻譯內容的獲取。

MD5.java是百度官方為了調用的安全,使用該算法來生成一段字符串,該java文件負責生成該字符串。

TransApi.java用來發送所需要的總共六個字段。

  1. 接下來是具體將獲取的文本添加到TextArea中。首先創建一個新線程來隨時監聽剪切板的文本,然后監聽文本框使用addDocumentListener()來進行insertUpdate()操作。
  2. 然后是數據庫文件的建立。在MySQL中新建一個數據庫,新建一個word表,將頁面記錄的單詞存入該表中,然后通過JTable和DefaultTableModel將記錄的單詞展示出來。

3.兩種方式的對比

  • 通過獲取網頁源代碼的方式的優點是完全免費,無任何次數限制。缺點是目前只能提供單個單詞的翻譯,長句中單詞與單詞間的空格在URL中無法識別;同時僅限于英語翻譯中文。
  • 通過百度翻譯API。優點是可以進行單詞、長句的翻譯,支持中文譯成多種外語,也支持多種外語譯成中文。缺點是百度規定一個月只給200萬字符的免費額度,超出的部分按100萬字符/49元收費。

4.源代碼

源代碼

參考資料:用Java做一個及時翻譯工具

總結

以上是生活随笔為你收集整理的制作一个Java即时翻译器——网页抓取调用百度翻译API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。