0

ASPで完全に開発されたWebサイトをスクレイプするためにどのモジュールが使用され、そのすべてのコンテンツが適切なHTML構文になっていないかを教えてください。

4

2 に答える 2

3

ウェブサイトの開発にどの言語が使用されたかは関係ありません。あなた(クライアント)がWebサイトから取得するのは、生成されたHTML(この場合は壊れたHTML)だけです。

「LWP」ライブラリと「get」関数を使用して、Webサイトのコンテンツを変数に読み込み、正規表現を使用して分析することができます。

このような:

use strict;
use LWP::Simple;
my $url = 'http://...';
my $content = get $url;
if ($content =~ m/.../) {
    ...
}
于 2012-09-11T12:05:41.393 に答える
2

または、 WWW::Mechanizeを使用することもできます。LWPこれは(LWP::Simpleの非常に単純なサブセットです)に基づいて構築され、多くの便利な「ブラウザのような」動作を提供します。たとえば、ログインCookieなどを使用してASPで生成されたWebサイトの一般的なセッション管理は、Mechanizeによって自動的に処理されます。

use strict; use warnings;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get( 'http:://www.example.org/login.asp' );
$mech->submit_form(
    form_number => 3,
    fields      => {
        username    => 'test',
        password    => 'secret',
    }
);

これはまずテストには適していますが、LWPがメソッドを継承しているため、プレーンリクエストにアクセスできます。したがって、フォームやリンクにアクセスするための組み込みパーサーの機能を維持しながら、リクエストにもアクセスできます。

また、Webサイトの出力がそれほど凝っていない場合でも、適切なHTMLパーサーの使用を検討してください。それを処理できるこれらの周りのいくつかがあります。正規表現をたくさん作成するよりもはるかに簡単です。ページが何か変更されたために戻る必要がある場合、これらは維持するのが難しくなります。

このテーマに関する情報がある関連する質問のリストは次のとおりです。

于 2012-09-11T12:40:24.493 に答える