php - 阅读受密码保护的页面

标签 php perl ssl

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

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

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

最佳答案

Mojo::UserAgent (见 cookbook )有一个内置的 cookie jar,如果你有 IO::Socket::SSL 就可以做 SSL安装。它有一个 DOM parser可以轻松使用 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

关于php - 阅读受密码保护的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368678/

相关文章:

php - php中的默认关键字

xcode - OSX 10.6 "make"命令不工作

perl - 如何使用包含命名空间声明和前缀名称的 XML::Twig 创建 XML?

java - 将 Java syslog 客户端配置为信任自签名证书

javascript - 通知: Undefined variable picture,性别

php - 在 PHP 应用程序中支持多语言的最佳和最快方法是什么

ssl - 通配符证书支持嵌套子域吗?

ssl - worklight可以使用IE证书吗

php - Woocommerce 订阅 - 在订阅 ID 旁边添加产品名称

perl - 为什么 Perl 在退出前不打印最后一个文本?