pQuery无法检索网页的内容

时间:2015-10-30 00:13:08

标签: perl

我正在使用this从网址中检索标题。

作为一个简单的例子,我有以下代码

use pQuery;
my $url = "http://google.com";
my $page = pQuery($url);
my $title = $page->find('title');
print $title->html;

但它不会打印任何内容。我使用不正确吗?

1 个答案:

答案 0 :(得分:1)

看起来你正确使用它,但pQuery有很多问题。其文档说 此模块仍在编写 ,但最新版本0.23已发布  十四个月前

在这种情况下,它会让人感到不安,因为它要求HTML文档以<html>开头并以</html>结尾,但Google主页以完全有效的

开头
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

结果是它将整个页面包装在一对<dummy> ... </dummy>标记中,这完全抛出HTML解析器。

如果你想获取网页的标题,我建议你使用优秀的Mojo::UserAgent,就像这样

use strict;
use warnings 'all';
use v5.10;

use Mojo::UserAgent;

my $ua = Mojo::UserAgent->new->max_redirects(5);

my $url = 'https://www.google.co.uk/';

my $title = $ua->get($url)->res->dom->at('title')->text;

say qq{Title is: "$title"};

输出

Title is: "Google"