我已经使用WWW-Mechanize登录页面,提交表单数据,然后抓取数据/显示数据等等。现在的问题是,我从哪里抓取的源站点在登录后开始使用另一个变量( POST数据),这是一个随机时间的动态URL (它是我登录的人的用户ID,似乎正在改变)。我似乎找不到一种方法来获取操作链接以将其存储为变量:$url2
<form name="searchForm" method="post" action="../Emsresponse/?id=106" onsubmit="return validate()">当我运行我的代码时,我存储原始的$url以及$url2,这是一个略微不同的/$url/ URL,变量在,但它是动态的,所以我需要在$url2中存储操作部分,这样我就不必一直更改静态URL变量。
例如,这是有效的:
my $url = "www.whatever.com/form";
my $url2 = "www.whatever.com/Ems/id?102";我只需要将action (即:../Emsresponse/?id=106)中的数据存储为一个变量,但我找不到一种可靠的方法来实现这一点。
因此,我需要$url2包含?id= have it-it-now,这样我就不必每两周修改一次代码。
$url = "www.page.com";
$url2 = "www.page.com/userName/id?=101";
my $r = $mech->get($url2);
# if we are not logged in $r hold has a key previous holding the http response from the 302 redirect call to the login page
if (1) {
# if we were redirected to the login location we are not logged in
if (1) {
$mech->get($url);
if ( $mech->success() ) {
$mech->form_name("loginForm");
$mech->set_fields( LoginUserName => ... );
$mech->click();
if ( $mech->success() ) {
$authme = 0;
}
# check for success --> this is important to not break the script on any errors
if ( $authme == 0
&& $mech->success() )
{
$mech->cookie_jar->save($cookie_file);
$mech->form_name("searchForm");
$mech->set_fields( DateStart => $date_yesterday );
$mech->click();
if ( $mech->success() ) { }发布于 2016-08-30 17:48:55
似乎有一个服务器端问题导致了这个问题..
https://stackoverflow.com/questions/39223178
复制相似问题