字符串:「這是徽章,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