我正在尝试使用 shell 脚本自动翻译网页。以下是有趣的部分:
wget http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com
尽管我在浏览器中使用此 URL 可以获得翻译,但我还是收到“ERROR 403:禁止访问”的错误。有人能解释一下发生了什么吗?为什么谷歌禁止在 shell 脚本中使用“翻译器”?他们是否监控用户代理,或者他们有其他方法来判断您是否是浏览器?
如果有人知道另一种方法(例如,如果有一个控制台非交互式浏览器可以获取该 URL,或者也许有另一个我不知道的在线翻译工具)请告诉我。
答案1
是的,他们会检查用户代理。将 -U 选项添加到 wget,如下所示:
wget -U "Mozilla/5.0" 'http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com'
我在我的机器上进行了测试并且能够获取该页面。
更新:确保在 URL 两边加上引号(我使用了单引号),因为 & 分隔符会将其之前的所有内容置于背景中,而其余部分则会被解释为单独的命令。