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