0

Javascript などを使用してコンテンツを動的にロードする Web ページをスクレイピングしたいと考えています。

X なしで Linux 共有ホスト上で使用できる、ヘッドレス ブラウザのようなもの。

PHP、Perl、Ruby、または Python を使用できます。

私を助けることができるフレームワーク/ヘッドレスブラウザを知っている人はいますか?

どうもありがとうございました。

4

3 に答える 3

1

ライブラリWWW::Scripterを参照してください

あらすじ:

use WWW::Scripter;

$w = new WWW::Scripter;
$w->use_plugin('Javascript');
$w->get('http://some.site.com/that/uses/javascript');
$w->content; # returns the HTML content, possibly modified by scripts
$w->eval('alert("Hello from JavaScript")');
$w->document->getElementsByTagName('div')->[0]->...
于 2012-07-20T21:55:43.153 に答える
1

コンテンツをロードするためにキーの押下やクリックをシミュレートする必要がある場合は、ブラウザを制御するためにSeleniumを試してください。

ヘッドレス ブラウザについては、ここにリストされているものがいくつかあります:ヘッドレス インターネット ブラウザ?

于 2012-07-20T15:19:36.633 に答える
-2

Perl でPerl WWW::Mechanizeを使用します。このモジュールには、Web ブラウザーのような機能を実行できる多数のメソッドがあります。以下はサンプルコードです:

use WWW::Mechanize;
use strict;

my $username = "admin";
my $password = "welcome1";  
my $outpath  = "/home/data/output";
my $fromday = 7;
my $url  = "https://www.myreports.com/tax_report.php";
my $name = "tax_report";
my $outfile = "$outpath/$name.html";

my $mech = WWW::Mechanize->new(noproxy =>'0');  

$mech->get($url);
$mech->field(login => "$username");
$mech->field(passwd => "$password");

$mech->add_handler("request_send",  sub { shift->dump; return });
$mech->add_handler("response_done", sub { shift->dump; return });

$mech->click_button(value=>"Login now");

my $response = $mech->content();

print "Generating report: $name...\n";

open (OUT, ">>$outfile")|| die "Cannot create report file $outfile";
print OUT "$response";
close OUT;

(スクレイピングしたい) Web ページで Javascript を処理したい場合は、WWW::Mechanize::Firefoxを見ることができますが、これには Mozilla 用のMozReplプラグインのインストールが必要になる場合があります。

于 2012-07-20T15:18:25.717 に答える