2013-03-12 149 views
0

我试图用php或perl编写的脚本阅读网站的特定div元素。阅读受密码保护的页面

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

我不太清楚如果用PERL或PHP来做这个更好,所以我已经用这两种语言标记了这个问题。

+0

PHP(或任何真的)与** **卷曲 - 使用一个[cookie罐(http://curl.haxx.se/libcurl/php/examples/cookiejar.html) – ficuscr 2013-03-12 18:03:21

回答

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 
+0

@downvoter,关心评论? – 2013-03-12 19:06:24