Perl 我应该点击哪个按钮?
我试图爬网一个网站,加载网页,如果我点击“显示更多的产品”。我正在使用perl mechanize。这是我从网站上得到的内容。我应该在click_button()中指定什么,以便单击“显示更多产品”按钮Perl 我应该点击哪个按钮?,perl,mechanize,Perl,Mechanize,我试图爬网一个网站,加载网页,如果我点击“显示更多的产品”。我正在使用perl mechanize。这是我从网站上得到的内容。我应该在click_button()中指定什么,以便单击“显示更多产品”按钮 <div id='lPage' style='display:none' class='lpge'>1</div> <div class='clearfix'> <div id='divMoreProducts' onclick='jav
<div id='lPage' style='display:none' class='lpge'>1</div>
<div class='clearfix'>
<div id='divMoreProducts' onclick='javascript:showMoreProductsAjax("All Products")' class='showMoreProd' style='display:none;'>
<span>Show more products</span>
</div>
<div id='divMoreProductsLoader' style='display:none;text-align:center'>
<img src='http://img2.babyoye.com/skin/frontend/default/babyoye_2012/images/ajax-more-loader.gif'>
</div>
</div>
<div id='botControl'>
<span style='float:right'><strong>Search result </strong>133</span>
</div>
</article>
<div id='lPage' style='display:none' class='lpge'>1</div>
<script type="text/javascript">var enable_show_more_product = true;</script>
<script type="text/javascript">
jQuery(document).ready(function(){
try {
jQuery("pre.loadme").lazyLoad();
} catch(e) {
}
});
jQuery(function () {
jQuery(".showMoreProd").mousedown(function (){
jQuery(this).addClass("showMoreProdImp");
}).mouseup(function () {
jQuery(this).removeClass("showMoreProdImp");
});
});
</script>
</div>
1
展示更多产品
搜索结果133
1.
var enable\u show\u more\u product=true;
jQuery(文档).ready(函数(){
试一试{
jQuery(“pre.loadme”).lazyLoad();
}捕获(e){
}
});
jQuery(函数(){
jQuery(“.showMoreProd”).mousedown(函数(){
jQuery(this.addClass)(“showMoreProdImp”);
}).mouseup(函数(){
jQuery(this).removeClass(“showMoreProdImp”);
});
});
在浏览器中单击此按钮后,很容易检查实际发出的HTTP请求,只需使用以下命令在代码中重复此请求:
我正在使用Firefox的扩展来实现这些功能…在浏览器中单击此按钮后,检查实际发出的HTTP请求非常容易,只需使用以下命令在代码中重复该请求:
我正在使用Firefox的扩展来实现这些功能…WWW::Mechanize,正如用户手册所述,没有启用Javascript。您试图单击一个按钮来触发Ajax请求,因此从WWW::Mechanize“单击”它不会得到任何结果 在这种情况下,您需要首先分析整个过程,试图了解Ajax调用实际执行的是哪种请求。最简单的方法是使用允许您检查单个请求的浏览器。就我个人而言,我喜欢谷歌Chrome的工作方式:
$mech->back()
,这样所有当前表单字段都会返回到承载这些按钮的页面状态
HTH:-)
FranciscoWWW::Mechanize,如用户手册所述,未启用Javascript。您试图单击一个按钮来触发Ajax请求,因此从WWW::Mechanize“单击”它不会得到任何结果 在这种情况下,您需要首先分析整个过程,试图了解Ajax调用实际执行的是哪种请求。最简单的方法是使用允许您检查单个请求的浏览器。就我个人而言,我喜欢谷歌Chrome的工作方式:
$mech->back()
,这样所有当前表单字段都会返回到承载这些按钮的页面状态
HTH:-)
Francisco(请求行)POST/api/ajaxList.php?storeid=1&lazyloader=1&cat=48&cName=qmfiesbeawwzxjz&offer_special=0&crsl=0&example=0&p=2&dir=asc&order=popular HTTP/1.1主机www.example.com用户代理Mozilla/5.0(Windows NT 5.1;rv:20.0;WUID=D007A10BB4E7E7CE0D628DC0E22E0=2937)Gecko/20100101 Firefox/20.0接受/接受美国英语、英语语言;q=0.5接受编码gzip,泄气内容类型应用/x-www-form-urlencoded;charset=UTF-8 X-Request-With XMLHttpRequest Referer Content Length 151 Connection keep alive Pragma no cache(请求行)POST/api/ajaxList.php?storeid=1&lazyloader=1&cat=48&cName=qmfiesbeawwzxjz&offer_special=0&crsl=0&example=0&p=2&dir=asc&order=popular HTTP/1.1主机www.example.com用户代理Mozilla/5.0(Windows NT 5.1;rv:20.0;WUID=d007a10bb4a33e7e7ce0d628dc0e22e0;WTB=2937)Gecko/20100101 Firefox/20.0接受/接受语言en-US,en;q=0.5接受编码gzip,泄气内容类型应用程序/x-www-form-urlencoded;charset=UTF-8 x-request-With-XMLHttpRequest引用器内容长度151连接保持活动Pragma无缓存
$mech->post( URL, Content => {...} );