阅读受密码保护的页面
问题描述:
我试图用php或perl编写的脚本阅读网站的特定div元素。阅读受密码保护的页面
不幸的是,页面请求登录才能阅读这些特定的站点。正如我所见,它是ssl保护的。我不是在寻找一个完整的解决方案,我只需要一个提示,告诉脚本登录所需的信息(用户名+密码),然后再阅读部分源代码。
我不太清楚如果用PERL或PHP来做这个更好,所以我已经用这两种语言标记了这个问题。
答
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
+0
@downvoter,关心评论? – 2013-03-12 19:06:24
PHP(或任何真的)与** **卷曲 - 使用一个[cookie罐(http://curl.haxx.se/libcurl/php/examples/cookiejar.html) – ficuscr 2013-03-12 18:03:21