遇到的问题: phantomjs解析的时候,超时严重导致漏抓。
简化页面内容如下:
通过伟大的注释调试法,可以发现问题在这行代码里:
动态分析时会主动去执行行内绑定的代码,即:window.close()
。关闭了页面之后,PhantomJS后续绑定的事件都会失效,比如page.evaluate
、page.onCallback
、phantom.exit
。没有执行exit函数,一直阻塞导致触发python的超时——狗带。
修复方案:
在执行关闭页面的时候,PhantomJS的onClosing
事件可以收到通知,示例代码如下:
还可以通过Hook来解决这个问题:
案例代码:
用户名:
密码:
上次推送的文章因为关键字被干掉了,改天我折腾好博客再发吧...hexo搞起来心好累...