【问题标题】:My LWP Script Not Working我的 LWP 脚本不工作
【发布时间】:2013-03-07 20:49:17
【问题描述】:

我在跑步

#!/usr/bin/perl -w
use strict;
use LWP::Simple;

【问题讨论】:

  • 您是否安装了 curl 或 wget,它们是否有效?如果它们不起作用,perl 也不起作用……你没有互联网访问权限。
  • @runrig 我想是的。我将如何检查我是否这样做??

标签: perl web-crawler lwp


【解决方案1】:

变量$site 具有html 代码。

您也可以使用函数getstorehtml 数据保存到文件中,例如:

my $http_code = getstore( 'http://www.google.com/', 'google.html' );

【讨论】:

  • 但是我怎样才能让 get() 函数工作呢?我的原始代码没有错误对吗?也许我的配置有问题?
  • @mtrmilk:您的代码对我来说似乎是正确的。你期望什么输出?
  • 糟糕!我在我的问题上犯了一个错误。它实际上返回“无法得到它!在第 6 行”。我的配置可能有问题。我在运行 CentOS 的 VMWare 播放器上运行它。
  • @mtrmilk:我已经对其进行了测试,并且可以确认它有效。所以,是的,请检查您的配置,因为问题出在其他地方。
【解决方案2】:

如果您能看到失败的原因,这将对您有很大帮助。我建议你使用核心LWP 而不是简单版本。像这样:

#!/usr/bin/perl

use strict;
use warnings;

use LWP;

my $ua = LWP::UserAgent->new;

my $response = $ua->get('http://www.google.com/');

die 'Couldn't get it: ', $response->status_line unless $response->is_success;

my $site = $response->decoded_content;
print 'Got it.';

【讨论】:

  • 好的,所以响应是:“无法获取:500 无法在示例第 12 行连接到 www.google.com/80(连接被拒绝)。您认为有问题吗?
  • 您在代理服务器后面吗?其他 URL 是否也一样?
  • 是的,这就是我刚刚发现的!
猜你喜欢
  • 2015-04-15
  • 2012-01-25
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 2017-09-14
相关资源
最近更新 更多