1

我正在尝试解析我教授在学校的网页,以便在她更改作业问题并遇到我以前没有做过的事情时获得自动更新:由于 ajax / jquery 导致响应延迟。

所以在 perl 中,我只是使用 LWP::Simple 和 get 函数来获取页面的 html。问题是,她使用 jquery 来动态更新页面。通过我的“get”,我在 ajax / jquery 完成加载之前获得了页面。

有没有办法请求页面,但获得最终输出?即使我只需要使用固定的延迟(比如 10 秒),那也没关系。我只想每天从我的学校帐户运行一次,这样它就可以通过电子邮件告诉我作业已更新。学校支持 VPN,每天签到很麻烦,我想我可以通过一些快速脚本来解决 :)。

4

1 回答 1

2

有些人建议使用WWW::Mechanize::Firefox,如果您从无头服务器运行脚本,这可能不是一个选项。另一种选择是阅读她的 JavaScript/jQuery 代码,看看它在做什么。您的 Perl 代码可能会针对 AJAX 代码正在执行的同一资源发出直接 HTTP 请求。通过了解 jQuery AJAX 请求如何修改页面,您可能能够充分更新您的 Perl 以反映它。

如果不是主要请求,来自 LWP::Simple的mirror方法可能对 AJAX 请求有用。它执行“条件 GET”,这意味着它仅在发生更改时才下载正文,这会加快速度。

于 2013-08-25T23:44:34.150 回答