2011-05-25 22 views
0

我遇到了一些我寫的代碼有問題。這基本上是我自己的概念證明,我將用它來運行單詞以獲得另一種形式(有趣的冰島結合)。在代碼中,我必須有一個if語句,以防單詞本身的URL導致多個結果。從那裏我找到相關鏈接,從那裏獲取內容並使用TableExtract獲取我需要的表。除了我沒有得到任何有用的東西。HTML :: TableExtract找不到表

#!perl 



use warnings; 
use HTML::TableExtract qw(tree); 
use LWP::Simple; 




sub saekja{ 
    $table = $te->first_table_found; 
    $table_tree = $table->tree; 
    $table_html = $table_tree->as_HTML; 
}; 


sub leidretta{ 
#Ef að leitin skilar fleirri en einni niðurstöðu 
    if ($content =~ /orð fundust./){ 

    $content =~ m/<li><strong><a href="(.*)">/; 

#byrjunin á strengnum fyrir urlið 
    $upphaf = "http://bin.arnastofnun.is/"; 
#skeytir saman strengjunum til að búa til urlið 
    $urlid = $upphaf . $1; 
    $content = get($urlid); 
    $te = new HTML::TableExtract(depth=>0, count=>0); 



} 
}; 
$content = get("http://bin.arnastofnun.is/leit.php?q=Fiskisl%C3%B3%C3%B0"); 

&leidretta; 
&saekja; 

我會承認我在這方面比較新(幾乎在一週前寫了我的第一個perl)。但是我完全陷入困境,大量的谷歌搜索沒有發現任何有用的東西。

+0

回答者注意:'$ te-> first_table_found'返回'undef'。 – daxim 2011-05-25 12:51:04

回答

1

這會幫助你去有點前鋒:

#!perl 

use utf8; 
use warnings; 
use HTML::TableExtract qw(tree); 
use LWP::Simple; 

$content = get("http://bin.arnastofnun.is/leit.php?q=Fiskisl%C3%B3%C3%B0"); 

if ($content =~ /orð fundust./) { 

    $content =~ m/<li><strong><a href="(.*)">/; 

    $upphaf = "http://bin.arnastofnun.is/"; 
    $urlid = $upphaf . $1; 
    $content = get($urlid); 

    $te = new HTML::TableExtract(depth=>0, count=>0); 

    $te->parse($content); # this was missing 

    $table = $te->first_table_found; 
    $table_tree = $table->tree; 
    $table_html = $table_tree->as_HTML; 

    print $table_html,"\n"; 
} 

你基本上沒有什麼分析,所以HTML::TableExtract沒有任何工作的。我還需要將use utf8添加到腳本中,以便它正確處理非ASCII字符。

+0

感謝您的回覆。我不能相信我錯過了這一點。在過去的編碼方面我遇到了一些麻煩,但似乎現在已經得到了控制。 – 2011-05-26 08:26:10