【问题标题】:Trying to parse using Mojo::DOM, not getting the tag right尝试使用 Mojo::DOM 进行解析,但标签不正确
【发布时间】:2017-04-30 03:25:01
【问题描述】:

我正在使用 $ua 从我的 $url = "http://finance.yahoo.com/quote/MSFT?p=MSFT"; 中获取一些 HTML;

我能够很好地从 URL 中获取 HTML 内容。然后我使用 Mojo::DOM 进行子解析,这是正确的步骤,对吧?我想进一步从 Mojo $url get() html 内容中去除 A HREF...这就是我所拥有的:

my $ua = Mojo::UserAgent->new( max_redirects => 5, timeout => $timeout );
my $dom = Mojo::DOM->new;

my $content = $ua->get($url)->res->dom->at('div#quoteNewsStream-0-Stream')->content;
my $content2 = $content->$dom->find('a href#');

【问题讨论】:

    标签: perl mojolicious mojo


    【解决方案1】:

    只需使用Mojo::UserAgent返回的Mojo::DOM即可:

    #!/usr/bin/env perl
    
    use strict;
    use warnings;
    use v5.10;
    
    use Mojo::UserAgent;
    
    my $url = "http://finance.yahoo.com/quote/MSFT?p=MSFT";
    
    my $dom = Mojo::UserAgent->new->get($url)->res->dom;
    
    my $stream = $dom->at('div#quoteNewsStream-0-Stream');
    
    for my $href ( $stream->find('a')->each ) {
        say $href->{href};
    }
    

    输出:

    /news/jeff-bezos-trump-tech-summit-was-very-productive-224326329.html
    /news/jeff-bezos-trump-tech-summit-was-very-productive-224326329.html
    /news/donald-trump-tech-summit-at-trump-tower-202517070.html
    /video/microsoft-surface-sales-surge-disappointment-181934121.html
    /news/jeff-bezos-trump-tech-summit-was-very-productive-224326329.html
    /news/microsoft-surface-sales-surge-on-disappointment-with-macbook-pro-163819168.html
    /news/microsoft-surface-sales-surge-on-disappointment-with-macbook-pro-163819168.html
    /m/7f581deb-0089-341a-b637-e1e979e9e210/ss_5-point-checklist-for.html
    

    有关使用这些工具的 8 分钟教程,请查看Mojocast Episode 5

    【讨论】:

    • 感谢有关查看 Mojocast 的建议。非常感谢。
    猜你喜欢
    • 2012-10-28
    • 2017-04-29
    • 1970-01-01
    • 2018-03-30
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    相关资源
    最近更新 更多