我正在尝试使用用 php 或 perl 编写的脚本来读取网站的特定 div 元素。
不幸的是,该页面在读取这些特定站点之前请求登录。如我所见,它受 ssl 保护。我不是在寻找一个完整的解决方案,我只需要一个关于告诉脚本登录所需信息(用户+密码)的最佳方法的提示,然后再阅读随后出现的页面的部分源代码。
我不太确定使用 PERL 或 PHP 是否更好,所以我用这两种语言标记了这个问题。
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