Использование wget не дает такой же вывод, как браузер

2

Я использую wgetдля Windows (gnuwin32 wget-1.11.4-1) в Windows 8 и использую его для инструмента справочной службы под названием Kayako, который сообщает о необходимости опроса из очереди электронной почты. Командная строка выглядит так:

wget.exe -O null --timeout 25 http://xxx.kayako.com/cron/index.php?/Parser/ParserMinute/POP3IMAP

Я знаю, что получение ответа от сервера в моем конкретном случае занимает около 20 секунд при использовании браузера с URL-адресом в командной строке выше. Однако при использовании этой команды она возвращается практически сразу. Это выдержка из вывода:

Подключение к xxx.kayako.com [xxx.xxx.xxx.xxx]: 80 ... подключено. HTTP-запрос отправлен, ожидание ответа ... 200 OK Длина: не указано [text / html]

Я хотел бы знать, в чем будет разница между этими двумя случаями и как я могу заставить wget вести себя так же, как браузер (я знаю, что это не так, потому что Kayako не опрашивает из очереди электронной почты).

ДПМ
источник

Ответы:

2

Некоторые сайты предлагают страницы, оптимизированные для браузера. Это означает, что сайт проверяет по запросу, какой браузер вы используете, и предоставляет вам оптимизированную страницу или как запасную стандартную страницу.

Также java-скрипт может быть проблемой см. Ссылку

Саймон
источник
1
wgetесть --user-agentвариант - попробуйте указать известный. Используйте этот сайт whatsmyuseragent.com, чтобы увидеть текущую строку агента пользователя. Также вам может понадобиться использовать эту --referrerопцию - некоторые сайты не любят пустых ссылок. Реферал, которого вы хотите отправить, - это URL-адрес страницы, содержащей ссылку, которую вы пытаетесь скачать. Также вам может потребоваться указать -e robots=off.
LawrenceC