无法在HTML网页中获取对iframe的基于cookie的访问权限

时间:2012-08-29 09:14:04

标签: perl lwp way2sms

我正在尝试通过Perl LWP中的Way2sms自动发送短信。我能够成功登录。然后,我点击浏览器中的发送短信链接进入短信发送页面。从那里,基于页面URL和短信字段所在的iframe的url,我尝试构建应该发布表单的页面的绝对URL,并使用正确的参数发布它(你可以在图像中看到这一切)。但是,短信没有被发送。谁能告诉我这里我做错了什么? (CPAN中有一个类似的模块通过Mechanize完成此任务,我正在尝试不同的方法)

use LWP::UserAgent;
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new(
file => "cookies.txt",
autosave => 1,
);
my $ua = LWP::UserAgent->new(
    agent =>
      'Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
    cookie_jar => $cookie_jar,
);
my $response = $ua->post(
    'http://site2.way2sms.com/contentt/bar/Login1.action',
    {
        username => $mob,
        password => $pass,
    }
);

if ( $response->is_redirect ) {
    $response = $ua->get( $response->header('Location') );
    print 5 if $response->decoded_content =~ /Kaustav Mukherjee/i; #prints it, showing that the login is successful
}
my $smsresp = $ua->post("http://site5.way2sms.com/jsp/quicksms.action",[MobNo=>$mob,textArea=>'Hello World']);
if ( $smsresp->is_redirect ) {
   $smsresp = $ua->post($smsresp->header('Location'),[MobNo=>$mob,textArea=>'Hello World']);
   }

enter image description here

1 个答案:

答案 0 :(得分:0)

这是一个可以帮助你的间接答​​案:

  1. 如果您必须使用本网站,请尝试使用CasperJS之类的东西。可能需要发生一些JavaScript魔法。
  2. 也许您可以使用Google Voice或其他更智能的服务来自动发送短信。 CPAN上的某人看起来已经有了sweet Google::Voice module