0

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

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

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

4

1 回答 1

1

Mojo::UserAgent(见说明书)有一个内置的 cookie jar,如果你安装了IO::Socket::SSL ,它可以做 SSL 。它有一个DOM 解析器,可以轻松使用CSS3选择器来遍历返回的结果。如果这还不够好,整个事情可以使用非阻塞(如果这是你需要的东西)。

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

这是一个非常简单的示例,用于从类 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;

事实上,运行这个 shell 命令可能足以让你开始(取决于权限)

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