2011-04-03 60 views

回答

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。乾杯:-)

+0

謝謝你,真棒,但我需要趕上鍊接:)不是我能定義。如果字符串包含鏈接,那麼我需要獲取它的標題。 :) – wonnie 2011-04-03 21:27:01

+0

這裏有更好的正則表達式,但是這裏有一個簡單的,**有缺陷的**例子:'$ str =〜m {(? http:// \ S *)};' – nc3b 2011-04-03 21:47:16

+0

我更喜歡'use ''而不是'require',因爲'use'在編譯時被評估; 'require'在運行時進行評估。 – 2014-12-01 23:14:23

1

根據給定鏈接的方式以及如何定義標題,您需要一種或其他方法。

在您提交的確切場景中,獲取帶有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?會給你答案。

如果標題在鏈接本身編碼並且鏈接是鏈接的文本本身,那麼如何定義標題?

  1. 在任何查詢之前是否需要URI的最後一位?設置爲URL路徑的查詢會發生什麼?
  2. 你想要主機和查詢之間的部分?
  3. 你想解析鏈接源並檢索標題標籤嗎?

與往常一樣,從微不足道的首次實施將覆蓋所有角落的情況是一項艱鉅的任務;-)