如何使用 curl 等从 Google Translate 获取翻译后的字符串?

如何使用 curl 等从 Google Translate 获取翻译后的字符串?

如何使用一些命令行工具(如curl)从Google Translate 获取翻译后的字符串(例如英语到西班牙语)?我查看了页面源代码,但谷歌翻译似乎没有将翻译结果包含在其 html 源代码中,即使结果呈现在屏幕上。所以

 curl "https://translate.google.com/#auto/es/stay%20calm"

没用——只是给了我 html 源代码,既没有原始字符串,也没有翻译后的字符串。而且我听说他们的 API 不是免费的所以我不想使用它。我听说还有微软的翻译服务,但如果可能的话我想坚持使用谷歌的翻译服务。

答案1

您可以在您的~/.bashrc

function gtr {
  sl=en
  tl=$1
  shift
  base_url="https://translate.googleapis.com/translate_a/single?client=gtx&sl=$sl&tl=$tl&dt=t&q="
  ua='Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0'
  qry=$( echo "$*" | sed -e "s/\ /+/g" )
  full_url=$base_url$qry
  response=$(curl -sA "$ua" "$full_url")
  echo "$response" | sed 's/","/\n/g' | sed -E 's/\[|\]|"//g' | head -1
}
用法
$: gtr es hi this is a test 
Hola esto es una prueba

来源

相关内容