Perl无法从html页面获取内容,而页面包含所有必需的标记

时间:2015-03-23 21:12:57

标签: python html perl web-crawler

我正在尝试构建一个Redfin api,我试图使用LWP :: Simple获取内容,用于此链接

Redfin Link

我在结果中得到的内容,没有学校的内容。我想要的是一个" Willow Glen中学"我有另一个API,它将接受此文本的输入并返回精确的API分数。

我尝试使用Python做同样的事情,结果仍然相同,下面是我在perl中转储代码。无论哪个有效,我都会接受它。

现在只有一个简单的代码:

use LWP::Simple;

$content = get("https://www.redfin.com/CA/San-Jose/947-Hummingbird-Dr-95125/home/1309375#schools");

print "Call API" if($content =~ /Willow Glen Middle School/);

1 个答案:

答案 0 :(得分:1)

你没有得到学校的结果是因为没有学校的结果。页面的内容使用javascript填充,而您的get方法会在不使用javascript处理的情况下提供HTML。您需要使用类似WWW::Mechanize::Firefox的内容来使您的示例正常工作。但请注意,LWP会慢得多。

以下是示例代码

#use LWP::Simple;
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new();
$mech->get("https://www.redfin.com/CA/San-Jose/947-Hummingbird-Dr-95125/home/1309375#schools");
#print $mech->content;

if($mech->content=~/Willow Glen Middle School/){
        print "ya\n";
}