0

phpまたはperlで記述されたスクリプトを使用して、Webサイトの特定のdiv要素を読み取ろうとしています。

残念ながら、これらの特定のサイトを読み取る前に、ページはログインを要求します。ご覧のとおり、SSLで保護されています。完全な解決策を探しているわけではありません。後で表示されるページのソースコードの一部を読み取る前に、ログインに必要な情報(ユーザー+パスワード)をスクリプトに伝えるための最良の方法に関するヒントが必要です。

これをPERLとPHPのどちらで行うのが良いかはよくわかりません。そのため、この質問にこれらの言語の両方でタグを付けました。

4

1 に答える 1

1

Mojo::UserAgent (クックブックを参照)には組み込みの Cookie jar があり、 IO::Socket::SSLがインストールされている場合は SSL を実行できます。CSS3セレクターを使用して返された結果を簡単にトラバースできるDOM パーサーがあります。それでも十分でない場合は、すべてをノンブロッキングで使用できます (それが必要な場合)。

Mojo::UserAgent および上記のその他のツールは、Mojoliciousツール スイートの一部です。これは Perl ライブラリであり、PHP よりも汎用的な言語であるため、このタスクには Perl をお勧めします。

これは、クラス myclass を持つ div 内にあるすべてのリンクからテキストを取得するための非常に単純な例です。

use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new;

$ua->post( 'http://mysite.com/login' => form => { ... } );
my @link_text =
  $ua->get( 'http://mysite.com/protected/page' )
     ->res
     ->dom('div.myclass a')
     ->text
     ->each;

実際、このシェル コマンドを実行するだけで十分に作業を開始できます (権限によって異なります)。

curl -L cpanmin.us | perl - -n  Mojolicious IO::Socket::SSL
于 2013-03-12T18:05:58.787 に答える