我正在编写一个基本的脚本来监视网页并在发生更改时与之交互。
我用Perl编写,使用curl来获取页面,并使用grep来监视它的变化。
我使用的手表结构如下
my $string = '';
do {
$string = curl -s --cookie cookie.txt "http://url.com/resource" | grep "thing_that_has_appeared"
} until ( $string ne '' );
然后将其传递到用于提取信息的字符串中。
当下载为带有 curl 的文件时,页面本身为 16KB。
我在运行此功能时看到巨大的负载,无论是在网络带宽还是处理器使用情况上。
关键是要尽可能密切地观察页面,即在秒或秒的几分之一刻度上,因此可以接受一些合理的负载。我只是想知道我是否做错了,是否有更有效的方式来观看页面?
服务器未发出Last-Modified
标头。
方法可以指示 curl(或可能中断它)在我确认页面没有更改后停止下载页面?
我认为我在这里最需要洞察力。我的太有限了。
编辑:为了回应评论,我包含了循环和指定的时间跨度。
ThisSuitIsBlackNot的回答帮助:
使用 LWP::UserAgent,您可以指定在每下载 N 个字节后调用的回调。如果您找到要查找的内容,则可以中途取消请求。
他还引用了metacpan上与libwww-perl库的Web用户代理相关的页面。
感谢您的投入。再说一次,如果提问的方式不充分,很抱歉。