阅读受密码保护的页面

时间:2013-03-12 18:00:25

标签: php perl ssl

我正在尝试使用php或perl编写的脚本读取网站的特定div元素。

不幸的是,页面在可以读取这些特定站点之前请求登录。正如我所看到的,它受到了ssl保护。我不是在寻找一个完整的解决方案,我只需要一个提示,告诉脚本登录所需的信息(用户+密码),然后再阅读之后出现的页面源代码部分。

我不太确定用PERL或PHP做这个是否更好,所以我用这两种语言标记了这个问题。

1 个答案:

答案 0 :(得分:1)

Mojo::UserAgent(请参阅cookbook)有一个内置的Cookie jar,如果安装了IO::Socket::SSL,可以执行SSL。它有DOM parser,可以轻松使用CSS3选择器来遍历返回的结果。如果这还不够好,那么整个事情可以被用于非阻塞(如果这是你需要的东西)。

Mojo :: UserAgent和上面列出的其他工具是Mojolicious工具套件的一部分。它是一个Perl库,我肯定会推荐Perl用于此任务,因为它是一种比PHP更通用的语言。

这是一个非常简单的示例,用于获取div中包含myclass类的所有链接中的文本

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;

实际上,运行此shell命令可能足以让您入门(取决于权限)

curl -L cpanmin.us | perl - -n  Mojolicious IO::Socket::SSL