Webサイトに保存されているいくつかの値を表示する必要があります。そのため、Webサイトをスクレイプして、テーブルからコンテンツを取得する必要があります。何か案は?
10 に答える
jQueryに精通している場合は、 pQueryを確認することをお勧めします。これにより、これが非常に簡単になります。
## print every <h2> tag in page
use pQuery;
pQuery("http://google.com/search?q=pquery")
->find("h2")
->each(sub {
my $i = shift;
print $i + 1, ") ", pQuery($_)->text, "\n";
});
HTML::DOMもあります。
ただし、何をするにしても、これには正規表現を使用しないでください。
過去にHTML Table Extractを使用したことがあります。個人的にはちょっと使いにくかったのですが、オブジェクトモデルがよくわからなかったのかもしれません。私は通常、マニュアルのこの部分を使用してデータを調べます。
use HTML::TableExtract;
$te = HTML::TableExtract->new();
$te->parse($html_string);
# Examine all matching tables
foreach $ts ($te->tables) {
print "Table (", join(',', $ts->coords), "):\n";
foreach $row ($ts->rows) {
print join(',', @$row), "\n";
}
}`
私は一般的にLWP / LWP :: Simpleでこれを行ってきましたが、Perlでのあらゆる種類のWebページスクレイピングに現在使用されている「推奨」モジュールはWWW::Mechanizeです。
この単純な perl モジュール WEB::Scraper を使用することもできます。これは理解しやすく、私の生活を楽にしてくれます。詳細については、この例に従ってください。
http://teusje.wordpress.com/2010/05/02/web-scraping-with-perl/
デッド スレッドをドラッグするつもりはありませんが、このスレッドをグーグルで調べている人は、WWW::Scripter - 'For scripting web sites that have scripts'もチェックしてください。
幸せなリモートデータの集約;)
魔法のWeb::Scraperを見てみましょう。これは Webスクレイピングのためのツールです。
perl を使用した Web スクレイピングのこの小さな例を確認してください: リンク テキスト