我最近在抓取一个网站,并遇到了这个问题:
<img onerror="onErrorImg(this)" onload="onLoadImg(this);" src="example.png">
但是,相关站点未定义名为onErrorImg
的函数,因此如果禁用了图像,则会在控制台中产生错误。在这种情况下,我想禁用图像,因为它是通过计量连接运行的。在不更改我的代码其余部分的情况下,如果在浏览器中启用了图像,则页面可以正确加载并且可以被抓取。
我将就此问题与网站所有者联系,但如果没有及时纠正,是否可以解决此类问题?如果可以在加载DOM时将JS脚本注入DOM中,则可以定义一个只是一个空块的函数,但除此之外,我不确定如何实现此功能。
编辑:我不确定为该页面创建DOM元素的过程是什么,但是如果您使用requests
来获取URL,则它主要仅返回JS。这使我假设整个页面都是通过JS / AJAX生成的,因此出现此功能错误似乎会导致大部分页面无法加载。
答案 0 :(得分:0)
尝试使用这种简单的解决方案,它将覆盖功能
has_many :comments do
def number_five
if proxy_association.owner.is_a? Post
#...
end
end
end
如果无法正常工作,则必须创建扩展以尽早覆盖该功能。