2009-05-27 26 views
0

私はリンク付きの入力があり、そのリンクを開きたいと思います。たとえば、HTMLファイルがあり、そのファイル内のすべてのリンクを見つけてその内容をExcelスプレッドシートで開きたいとします。PerlでHTMLファイルからリンクを抽出するにはどうすればよいですか?

+0

なぜ、どうしてそれぞれの投稿をそのようにフォーマットする必要がありますか?どうして? – innaM

+1

いくつかのhtmlファイルからリンクのリストを取得する方法を尋ねていますか?または、リンクをたどる方法を尋ねていますか?または、Excelスプレッドシートに何かを得る方法を尋ねていますか? – innaM

+0

私はそれを読んで、彼/彼女は与えられたページからリンクされたページからデータを掻き出し、その結果をExcelドキュメントに入れたいと思っています。 –

答えて

1

これはWWW::Mechanizeの仕事のようです。これは、Webページを取得し、勉強するためのかなり高いレベルのインターフェースを提供します。

ドキュメントを読んだら、どうすればよいかわかります。

+0

WWW :: Mechanizeを使用します。 my $ mech = WWW :: Mechanize-> new(自動チェック=> 1); $ mech-> get( "http://www.google.com"); $ mech-> contentを出力してください。 取得中にエラー エラーGETing http://www.google.com:(:不明なエラー接続)私が間違っているかを知りたい www.google.com:80に接続できません。 – User1611

+0

google.comは特別です。それはロボットが好きではありません。ただし、接続できない場合はネットワークに問題があるようです。 –

5

私のHTML::SimpleLinkExtorモジュールのリンクトラクタースクリプトが必要なようです。

私のwebreaperスクリプトに興味があるかもしれません。私は長い間、この同じ仕事に近い何かをする前に書きました。他のツールがはるかに優れているので、実際には推奨しませんが、少なくともコードを見ることができます。

CPANGoogleはお友達です。 :)

Mojo::UserAgentも、このために非常にいいです:

use Mojo::UserAgent 

print Mojo::UserAgent 
    ->new 
    ->get($ARGV[0]) 
    ->res 
    ->dom->find("a") 
    ->map(attr => "href") 
    ->join("\n"); 
1

Web::Queryもあります:

#!/usr/bin/env perl 

use 5.10.0; 

use strict; 
use warnings; 

use Web::Query; 

say for wq(shift)->find('a')->attr('href'); 

または、CLIから:

$ perl -MWeb::Query -E'say for wq(shift)->find("a")->attr("href")' \ 
     http://techblog.babyl.ca 
0

私はしましたこれはこれまでにURI::Findを使用していました(ファイルがHTMLでない場合)。

関連する問題