动态爬虫漏抓的案例分析(二)
2017-9-4 20:6:5 Author: mp.weixin.qq.com(查看原文) 阅读量:2 收藏

遇到的问题: phantomjs解析的时候,超时严重导致漏抓。

简化页面内容如下:

通过伟大的注释调试法,可以发现问题在这行代码里:

动态分析时会主动去执行行内绑定的代码,即:window.close()关闭了页面之后,PhantomJS后续绑定的事件都会失效,比如page.evaluatepage.onCallbackphantom.exit。没有执行exit函数,一直阻塞导致触发python的超时——狗带。

修复方案:
在执行关闭页面的时候,PhantomJS的onClosing事件可以收到通知,示例代码如下:

还可以通过Hook来解决这个问题:

案例代码:

<script type="text/javascript" language="javascript">

function BtnPsw_onclick() {

window.open("../Login/UpdatePass")

</script>

<form name="form1" method="post" action="" id="form1">

用户名:<input name="UserName" type="text" id="UserName" class="logintext"><br/>

密码: <input name="Password" type="password" id="Password" class="logintext"><br/>

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="1222">

<input name="LoginButton" type="button" id="LoginButton" value="登 录" class="lbotton">

<input name="login" type="button" value="退 出" class="lbotton" onclick="window.close()">

<input name="UpdatePwd" type="button" value="修改密码" class="lbotton" onclick="BtnPsw_onclick()">

</form>

上次推送的文章因为关键字被干掉了,改天我折腾好博客再发吧...hexo搞起来心好累...


文章来源: https://mp.weixin.qq.com/s?__biz=MzU4NjIxNzkyNQ==&mid=2247483713&idx=1&sn=909e2a268af31b02f0f951893b388453&chksm=fdffe1ebca8868fdb8c1b6ac4e96a1be072de96a465ab3f9833297817cda5419639275fd29e1&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh