【问题标题】:pQuery cannot retrieve contents of webpagepQuery 无法检索网页内容
【发布时间】: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


    【解决方案1】:

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

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

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

    结果是将整个页面包装在一对&lt;dummy&gt; ... &lt;/dummy&gt; 标签中,这完全抛出了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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2019-02-20
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多