字符串:“这是徽章,https://stackoverflow.com/badges唧唧歪歪”充分利用链接的网站标题字符串
如果字符串contatins链接(见上文)我想分析该链接的网站标题。
它应该返回:徽章 - 堆栈溢出。
我怎样才能做到这一点?
谢谢。
字符串:“这是徽章,https://stackoverflow.com/badges唧唧歪歪”充分利用链接的网站标题字符串
如果字符串contatins链接(见上文)我想分析该链接的网站标题。
它应该返回:徽章 - 堆栈溢出。
我怎样才能做到这一点?
谢谢。
#!/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。干杯:-)
我使用URI::Find::Simple的list_uris方法和URI::Title为此。
根据给定链接的方式以及如何定义标题,您需要一种或其他方法。
在您提交的确切场景中,获取带有URI::Find
,HTML::LinkExtractor
等的URL,然后使用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?会给你答案。
如果标题在链接本身编码并且链接是链接的文本本身,那么如何定义标题?
与往常一样,从微不足道的首次实施将覆盖所有角落的情况是一项艰巨的任务;-)
谢谢你,真棒,但我需要赶上链接:)不是我能定义。如果字符串包含链接,那么我需要获取它的标题。 :) – wonnie 2011-04-03 21:27:01
这里有更好的正则表达式,但是这里有一个简单的,**有缺陷的**例子:'$ str =〜m {(? http:// \ S *)};' –
nc3b
2011-04-03 21:47:16
我更喜欢'use ''而不是'require',因为'use'在编译时被评估; 'require'在运行时进行评估。 – 2014-12-01 23:14:23