使用Perl Mechanize向ASPX站点POST请求获取GUID失败求助
Perl Mechanize POST请求无法获取GUID生成站点的结果
我尝试使用Perl的Mechanize模块向GUID生成站点发送POST请求以获取GUID,已知站点依赖JavaScript,但仍希望通过构造正确的POST请求实现。已在浏览器中追踪请求并配置请求头,但返回的HTML中txtResults文本域未包含GUID,具体对比如下:
结果对比
- 浏览器正常请求返回的结果:
<textarea name="txtResults" rows="2" cols="20" id="txtResults" style="font-family:Courier New,Courier,monospace;font-size:Larger;font-weight:bold;height:152px;width:421px;">qk5DF22bhkm4C2AwZ5OcZw==</textarea>
- 脚本返回的结果:
<textarea name="txtResults" rows="2" cols="20" id="txtResults" style="font-family:Courier New,Courier,monospace;font-size:Larger;font-weight:bold;height:152px;width:421px;"></textarea>
表单字段信息
我通过以下代码导出页面表单及输入字段:
my @forms = $mech->forms; foreach my $form (@forms) { my @inputfields = $form->param; print Dumper \@inputfields; }
得到的字段列表:
$VAR1 = [ '__EVENTTARGET', '__EVENTARGUMENT', '__LASTFOCUS', '__VIEWSTATE', '__VIEWSTATEGENERATOR', '__EVENTVALIDATION', 'txtCount', 'chkUppercase', 'chkBrackets', 'chkHypens', 'chkBase64', 'chkRFC7515', 'chkURL', 'LocalTimestampValue', 'btnGenerate', 'txtResults' ];
我的POST请求代码
my $mainpage = "https://www.guidgenerator.com/online-guid-generator.aspx"; $mech->post( "$mainpage", fields => { 'txtCount' => "1", 'chkBase64' => "on", 'LocalTimestampValue' => "Date%28%29.getTime%28%29", 'btnGenerate' => "Generate+some+GUIDs%21", 'txtResults' => "", '__EVENTTARGET' => 'on', '__EVENTARGUMENT', => 'on', '__LASTFOCUS', => 'on', '__VIEWSTATEGENERATOR' => "247C709F", '__VIEWSTATE' => 'on', '__EVENTVALIDATION' => 'on', 'chkUppercase' => 'off', 'chkBrackets' => 'off', 'chkHypens' => 'off', 'chkRFC7515' => 'off', 'chkURL' => 'off', }, );
我在浏览器中追踪请求时看到Payload标签包含上述多数字段,已将这些字段加入POST请求,但不确定是否因站点依赖JavaScript导致失败,寻求技术帮助,可提供更多相关信息。
内容的提问来源于stack exchange,提问作者James Finnegan
相关产品推荐
相关产品推荐

