在我的工作中,我建立了很多wordpress网站,我也做了大量的剪切和粘贴。为了简化这个过程,我正在尝试制作一个可以填写表单信息并将表单信息提交给wordpress的爬虫程序。但是,一旦我通过登录,我无法让wordper管理面板中的爬虫正常运行。
我知道提交登录表单是有效的,因为我之前已经收回了该页面。但是这个脚本似乎没有返回“设置”页面,这就是我想要的。我一直在尝试使用这个网站作为指南:www.higherpass.com/Perl/Tutorials/Using-Www-mechanize/3/关于如何使用mechanize,但我可以使用一些额外的指针。这是我的Perl脚本,我尝试了一些变化,但我只需指向正确的方向。
谢谢!
use WWW::Mechanize;
my $m = WWW::Mechanize->new();
$url2 = 'http://www.moversbatonrougela.com/wp-admin/options-general.php';
$url = 'http://www.moversbatonrougela.com/wp-admin';
$m->get($url);
$m->form_name('loginform');
$m->set_fields('username' => 'user', 'password' => 'password');
$m->submit();
$response = $m->get($url2);
print $response->decoded_content();
答案 0 :(得分:2)
将以下代码行放在$m->submit();
之前。由于WWW::Mechanize
是LWP::UserAgent
的子类,因此您可以使用任何LWP方法。
$m->add_handler("request_send", sub { shift->dump; return });
$m->add_handler("response_done", sub { shift->dump; return });
以上内容将启用您的代码登录。注意请求/响应返回码,即200(OK)或302(重定向)等.URL请求,即$m->get()
可能被重定向或服务器阻止机器的IP。如果是重定向,那么您可以使用$m->redirect_ok();
来关注重定向网址,或者如果您不想遵循重定向网址,请使用$m->requests_redirectable
(这是一种LWP方法)。日志应该显示如下 -
HTTP/1.1 200 OK
OR
HTTP/1.1 302 Found
如果以上都不起作用,请使用下面的$m->submit();
替代方案并试一试 -
my $inputobject=$mech->current_form()->find_input( undef, 'submit' );
$m->click_button(input => $inputobject);