2

我正在使用 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,但这会影响吗?

4

1 回答 1

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 之间运行代理服务器。

于 2013-11-10T00:42:58.547 回答