在Docker容器中使用Google Chrome无头模式获取HTML代码遇错误求助
解决Docker中Chrome无头模式抓取HTML的问题
那些dbus、cpufreq相关的错误/警告是因为Docker容器默认缺少对应的系统组件,但完全不影响Chrome抓取网页HTML,你没拿到目标内容的核心原因是没加输出DOM的参数。
直接可用的命令
旧版无头模式(--headless)
google-chrome --headless --no-sandbox --disable-gpu --dump-dom http://www.wp.pl
新版无头模式(--headless=new)
google-chrome --headless=new --no-sandbox --dump-dom http://www.wp.pl
--dump-dom参数会把Chrome渲染后的完整DOM(包含JS执行后的内容)输出到标准输出,效果和curl类似,但能处理动态渲染的页面。
抑制无关错误输出
如果不想看到那些无关的错误信息,可以把标准错误重定向到/dev/null:
google-chrome --headless=new --no-sandbox --dump-dom http://www.wp.pl 2>/dev/null
进阶:等待页面加载完成
如果目标页面依赖JS异步加载内容,可以添加--wait-for参数确保页面完全加载:
google-chrome --headless=new --no-sandbox --dump-dom --wait-for=networkidle http://www.wp.pl
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

