wget 的意外结果

Unexpected result from wget

我从 URL 收到了奇怪的结果: http://banner.prestigecasino.com/download/casino/client_update_urls.php

如果我使用浏览器 - 我会得到一个结果。

如果我使用 perl LWP::UserAgentwget - 我会得到一个奇怪的输出。

wget http://banner.prestigecasino.com/download/casino/client_update_urls.php
<html><head><meta charset="utf-8"></head><body><script src="//d1a702rd0dylue.cloudfront.net/js/iealml-10-1/10800.js"></script><script>window.rbzns = 
{}; rbzns.challdomain=".prestigecasino.com"; rbzns.ctrbg="wGc4uoPOw9Z43y/mCXjboruSCfOcUOcHsILlHf2shF+Z1ygLZnvECWQy1JIbHMvSkIFkkQq7CKSrHCO3soSA9AM6dCX
SwL4Dot2zXoNeKndXwgSeBfFTc/ACeunbVu2nBbvQeR1+cNZBVwqjExNn8C5+uj0gk7vCm6h6GaiWgJI=";rbzns.rbzreqid="ovh-whg-reblazer531343336323632393134a750dc75b5199
690"; winsocks(true);</script></body></html>

这是一个机器人检测脚本。它在那里运行脚本来解开你下载的内容并验证你使用的是(javascript 感知)浏览器而不是例如LWP。

这相当普遍,尤其是对于您可以通过自动化脚本 'play' 比亲自操作更有效的网站。

技巧是,如果您 'run' javascript,您可能会得到一些东西,要么呈现页面,要么将您重定向到一个页面,要么设置 cookie 或类似的东西。这意味着基于 (WGET/LWP/WWW::Mechanize) 的基本工具不起作用。

参见:

有关其工作原理的更多详细信息。这个 particular javascript 似乎设置了一个名为 rbzid 的 cookie,您可以从浏览器中检索它,然后在您的脚本中重新使用它。