如何解决为什么Splash无法呈现此网页?
我对Splash还是很陌生,因此我能够在Ubuntu 18上(通过Splash / Docker)在Splash上安装Splash,这为该页面提供了不同的结果: https://www.overstock.com/Home-Garden/Area-Rugs/31446/subcat.html
我尝试将Splash中的用户代理更改为此:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/84.0.4147.135 Safari/537.36
因此,这使得Splash脚本如下:
function main(splash,args)
splash:set_user_agent(
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/84.0.4147.135 Safari/537.36'
)
assert(splash:go(args.url))
assert(splash:wait(0.5))
return {
html = splash:html(),png = splash:png(),har = splash:har(),}
end
尽管有这些添加,它仍然无法呈现页面。
如何使Splash呈现此页面?
解决方法
似乎overstock.com
需要一个Connection
和Accept
标头。将其添加到您的请求,它应该可以正常工作。
在Postman上测试,带有和不带有Connection: keep-alive
&& Accept: */*
标头;我得到了相同的错误页面:
添加上面的两个标题后:
因此,您的请求应进行相应的编辑:
function main(splash,args)
splash:set_custom_headers({
["Connection"] = "keep-alive",["Accept"] = "*/*",})
assert(splash:go(args.url))
assert(splash:wait(0.5))
return {
html = splash:html(),png = splash:png(),har = splash:har(),}
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。