我正在使用CasperJS来抓取网站。解析此站点时,我发现了一个奇怪的情况:http://socalskateshop.com/index.php?l=product_detail&p=36224
以下是CasperJS的截图:http://prntscr.com/22rqvf
如您所见,没有徽标。我深入研究了DOM,我看到<img>
元素的宽度为: 384px ,高度 10px 。
但是,使用Chrome我可以看到图像宽度 183px ,高度 100px 。所以我的问题是...... CasperJS的图像本身发生了什么?我看到src的协议是 https ,但这会影响吗?
答案 0 :(得分:0)
该图片的HTML已损坏:最后有一个额外的引号:
<img src="https://socalskateshop.com/themes/classic_black/images/socalskateshoplogoH.jpg"" alt=... />
^^
我的猜测是Chrome在某些时候开始更容忍HTML错误。 (记住PhantomJS大致相当于Chrome 13或Safari 5.1)
不幸的是,假设您没有运行该网站而无法修复HTML,我想不出一个好的解决方法。有些想法转而使用SlimerJS,或者在检查和修复错误的HTML之间运行代理服务器。