Я пытаюсь автоматически перевести веб-страницу с помощью сценария оболочки. Вот что интересно:
wget http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com
Я получаю сообщение «ERROR 403: Forbidden», хотя могу получить перевод при использовании этого URL-адреса в браузере. Может кто-нибудь объяснить, что происходит? Почему Google запрещает использование «переводчика» из сценария оболочки? Они следят за пользовательским агентом или у них есть другой способ узнать, являетесь ли вы браузером или нет?
Если кто-то знает другой способ сделать это (например, если есть консольный неинтерактивный браузер, который будет получать этот URL-адрес, или, возможно, есть другой инструмент онлайн-перевода, о котором я не знаю), сообщите мне.
Да, они проверяют пользовательский агент. Добавьте параметр -U в wget, например:
wget -U "Mozilla/5.0" 'http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com'
Я протестировал на своей машине, и мне удалось получить страницу.
Обновление: убедитесь, что вы заключили URL-адрес в кавычки (я использовал одинарные кавычки), потому что разделитель & выделяет все перед ним, а остальное интерпретируется как отдельная команда.