【发布时间】:2015-10-30 00:13:07
【问题描述】:
我正在使用 this 从 URL 中检索标题。
作为一个简单的例子,我有以下代码
use pQuery;
my $url = "http://google.com";
my $page = pQuery($url);
my $title = $page->find('title');
print $title->html;
但它不打印任何东西。我是不是用错了?
【问题讨论】:
标签: perl
我正在使用 this 从 URL 中检索标题。
作为一个简单的例子,我有以下代码
use pQuery;
my $url = "http://google.com";
my $page = pQuery($url);
my $title = $page->find('title');
print $title->html;
但它不打印任何东西。我是不是用错了?
【问题讨论】:
标签: perl
看起来你使用正确,但是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"
【讨论】: