0

ページからすべてのリンクを抽出したい。を使用してHTML:LinkExtorいます。HTML コンテンツ ページのみを指すすべてのリンクを抽出するにはどうすればよいですか?

これらの種類のリンクも抽出できません。

javascript:openpopup('http://www.admissions.college.harvard.edu/financial_aid/index.html'),

編集: HTML ページ - text/html。写真等のインデックスはしておりません。

4

3 に答える 3

2

はい、HTML::LinkExtorはjavascriptを理解していません。実際、 JavaScriptに埋め込まれたURLを認識するものが得られる可能性はほとんどありません。これは、通常、実際のコードを実行する必要があるためです。

于 2009-11-25T20:50:22.387 に答える
1

Perl には、力ずくでこれを行う多くの方法があります。Push/Pull Parser を使用して、タグ間をジャンプできます。ページ全体を丸呑みして、リンクまたは JavaScript 内のリンクを正規表現することができる場合があります。

WWW::Mechanize::Plugin::JavaScriptを見たことがありますか? WWW::Mechanizeモジュールは、Web ボットの親友です (ボットしようとしているわけではありません)。私は以前にこのモジュールを使用したことがあり、CPAN で最高の Perl モジュールの 1 つと言えます。

以下は CPAN の例です: 指定された変数を指定された値に設定します。

$m->plugin('JavaScript')->set(
      'document', 'location', 'href' => 'http://www.perl.org/'); 
于 2009-11-25T21:22:10.043 に答える
0

ほとんどのリンク収集にはWWW::Mechanizeを使用します。それ以外は、自分でマッチングを行います:

my @links = $content =~ m`javascript:openpopup\('([^\']+)'`g;
于 2009-11-25T21:24:34.513 に答える