私は、HTML :: TableExtractを使用してサイトのテーブルからデータをスクラップするperlスクリプトを作成しました。HTML :: TableExtract HTTPSサイト
セキュリティで保護されていないサイト(HTTPサイトなど)のテーブルデータをダンプするのには効果的ですが、HTTPSサイトを試しても機能しません(tables_report行だけが空白になります) )。
ただし、HTTPSページの内容をHTMLファイルに保存してから、セキュリティで保護されていないHTTPサイトに投稿して(このHTTPページを指すようにコンテンツを変更する)、このスクリプトは期待どおりに機能します。
どのように私はこれをHTTPS上で動作させることができます知っている? $コンテンツについて上述した
#!/usr/bin/perl
use lib qw(..);
use HTML::TableExtract;
use LWP::Simple;
use Data::Dumper;
# DOESN'T work:
my $content = get("https://datatables.net/");
# DOES work:
# my $content = get("http://www.w3schools.com/html/html_tables.asp");
my $te = HTML::TableExtract->new();
$te->parse($content);
print $te->tables_report(show_content=>1);
print "\n";
print "End\n";
サイトは単なる例です。これらは本当に私が抽出てるサイトはありませんが、ちょうど私が本当にこすりしようとしているサイトのように動作します。
1つのオプションは、ページをローカルで最初にダウンロードしてそこから抽出するためのものだと思いますが、これを行う簡単な方法があれば、私はむしろそうしないでしょう(誰でも助けてください複雑な解決策が出てくるのに夢中になってしまいます!)。
お返事ありがとうございます!これは – ChrisS
申し訳ありません。私はStackOverflowを初めて使用しています。これはほとんど働いた。私は 'my $ ua = LWP :: UserAgent-> new( ssl_opts => {verify_hostname => 0)、 )に変更する必要がありました。私はこの解決策をChankeyの解析と組み合わせました。私は下の最終コードを投稿しようとします。 – ChrisS
実際に読んだあと、 'ssl_opts => {SSL_verify_mode => 'SSL_VERIFY_PEER'}'を使うことをお勧めしました。これに関するセキュリティ上の問題があるかどうかはわかりませんが、私はここのセキュリティには興味がありません。公的なサイトの統計情報を取得しようとしています。 – ChrisS