加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – LWP :: Simple get的结果被截断

发布时间:2020-12-16 06:12:51 所属栏目:大数据 来源:网络整理
导读:我正在使用perl在url上执行get请求,结果似乎被截断了. 如果我跑 curl myurl | wc -l 结果是1823,如果我创建以下文件foo.pl: #!/usr/bin/perlmy $url = 'myurl';use LWP::Simple;my $content = get $url;die "Couldn't get $url" unless defined $content;pr
我正在使用perl在url上执行get请求,结果似乎被截断了.

如果我跑

curl myurl | wc -l

结果是1823,如果我创建以下文件foo.pl:

#!/usr/bin/perl

my $url = 'myurl';

use LWP::Simple;
my $content = get $url;
die "Couldn't get $url" unless defined $content;
print $content;

并运行

./foo.pl | wc -l

结果从1300左右到偶尔1823.手动检查输出显示使用perl时输出中断.

是什么导致这个?

解决方法

如果你关闭缓冲会怎么样?我也同意Karsten S.检查http标头的错误代码.最后,我还尝试将内容存储到数组中,看看会发生什么.

要关闭缓冲,您可以简单地放置$|在使用语句之后的脚本顶部.再次,在黑暗中拍摄.

要检查http标头,可以使用CGI.这是一个小网站,提供了一个很好的示例,说明如何从请求中获取标头:

http://www.velocityreviews.com/forums/t24118-re-lwp-simple-header-information-problems.html

最后,尝试使用数组@contents来存储来自Web服务器而不是标量$contents的内容.我曾经有过一段时间从Perl误解为列表的远程服务器传递的东西.我不确定LWP :: Simple是否会占用这些时间,但尝试不会有什么坏处.您可能只获得一部分数据,其余部分要么被覆盖,要么被忽略.将数据放入数组可以帮助确定是否发生了这种情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读