ASPで完全に開発されたWebサイトをスクレイプするためにどのモジュールが使用され、そのすべてのコンテンツが適切なHTML構文になっていないかを教えてください。
2 に答える
ウェブサイトの開発にどの言語が使用されたかは関係ありません。あなた(クライアント)がWebサイトから取得するのは、生成されたHTML(この場合は壊れたHTML)だけです。
「LWP」ライブラリと「get」関数を使用して、Webサイトのコンテンツを変数に読み込み、正規表現を使用して分析することができます。
このような:
use strict;
use LWP::Simple;
my $url = 'http://...';
my $content = get $url;
if ($content =~ m/.../) {
...
}
または、 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パーサーの使用を検討してください。それを処理できるこれらの周りのいくつかがあります。正規表現をたくさん作成するよりもはるかに簡単です。ページが何か変更されたために戻る必要がある場合、これらは維持するのが難しくなります。
このテーマに関する情報がある関連する質問のリストは次のとおりです。