字符串:“这是徽章,https://stackoverflow.com/badges bla bla bla”
如果string contatins一个链接(见上文),我想解析该链接的网站标题。
它应该返回:徽章 - 堆栈溢出。
我该怎么做?
感谢。
答案 0 :(得分:6)
#!/usr/bin/perl -w
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $response = $ua->get('http://search.cpan.org/');
if ($response->is_success) {
print $response->title();
}
else {
die $response->status_line;
}
见LWP::UserAgent。干杯: - )
答案 1 :(得分:6)
我使用URI::Find::Simple的list_uris方法和URI::Title。
答案 2 :(得分:1)
根据链接的给定方式以及如何定义标题,您需要一种或另一种方法。
在您提供的确切方案中,使用URI::Find
,HTML::LinkExtractor
等,然后my $title=URI->new($link)->path()
获取网址将提供标题和链接。
但如果网站标题是<a href="https://stackoverflow.com/badges"> badged</a>
之类的链接文字,那么How can I extract URL and link text from HTML in Perl?会给你答案。
如果标题是在链接本身编码而链接是链接的文本本身,那么如何定义标题?
总是从琐碎的第一次实施到覆盖所有角落的情况是一项艰巨的任务; - )