Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了是否有像Perl的LWP for Ruby这样的模块?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Perl中有一个 LWP module

Ruby有类似的模块(gem)吗?

更新

以下是我从特定网站中提取URL的功能示例.

use LWP::UserAgent;
use HTML::TreeBuilder 3;
use HTML::TokeParser;

sub get_gallery_urls {
    my $url = shift;

    my $ua = LWP::UserAgent->new;
    $ua->agent("$0/0.1 " . $ua->agent);
    $ua->agent("Mozilla/8.0");

    my $req = new http::request 'GET' => "$url";
    $req->header('Accept' => 'text/html');

    # send request
    $response_u = $ua->request($req);

    die "Error: ",$response_u->status_line unless $response_u->is_success;

    my $root = HTML::TreeBuilder->new;
    $root->parse($response_u->content);

    my @gu = $root->find_by_attribute("id","thumbnails");

    my %urls = ();

    foreach my $g (@gu) {
        my @as = $g->find_by_tag_name('a');

        foreach $a (@as) {
            my $u = $a->attr("href");

            if ($u =~ /^\//) {
                $urls{"http://example.com"."$u"} = 1;
            }
        }
    }

    return %urls;
}

解决方法

最接近的匹配可能是 httpclient,其目的是相当于LWP.但是,根据您的计划,可能会有更好的选择.如果您打算关注链接,填写表单等以便抓取Web内容,您可以使用 @L_489_2@,它与perl模块的名称相同.还有更多特定于Ruby的宝石,例如优秀的 Rest-clientHTTParty(我个人最喜欢的).有关更大的列表,请参阅 HTTP Clients category of Ruby Toolbox.

更新:这是一个如何在Mechanize中找到页面上所有链接的示例(Ruby,但它在Perl中类似):

require 'rubygems'
require 'mechanize'

agent = Mechanize.new

page = agent.get('http://example.com/')

page.links.each do |link|
  puts link.text
end

附:作为一个前Perler,我曾经担心放弃优秀的CPAN – 我会把自己画成Ruby的角落吗?难道我无法找到与我依赖的模块相当的东西吗?事实证明这根本不是问题,事实上最近恰恰相反:Ruby(以及Python)往往是第一个获得客户支持新平台/ Web服务等的人.

大佬总结

以上是大佬教程为你收集整理的是否有像Perl的LWP for Ruby这样的模块?全部内容,希望文章能够帮你解决是否有像Perl的LWP for Ruby这样的模块?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。