猪比有个功能,就是给网页截图,然后发到群里。那么如何用强大的Python截图呢?这里就要用到著名的py模块selenium
Step: 1 安装Chrome
首先,要给网页截图,就难免要用到浏览器,那么安装Chrome就是一个重点。
在安装Chrome的同时,我们还需要ChromeDriver,注意这俩东西版本必须匹配,必须匹配!!!
至于chromedriver的话,可以去这里找:chromedriver地址
我先后在CentOS
和Debian
上安装过,Ubuntu
也可以借鉴Debian
的安装方法:
CentOS
服务器是centos系统,centos包管理工具就是yum。但是添加yum源然后安装之后,我发现谷歌给的库里没有对应版本的chromedriver。
我又尝试给chrome降级,但是没有合适版本。
于是我开始在各大搜索引擎之间来回游走。最终在亲爱的谷歌里找到了一个不知名的Chrome下载站,找到了有对应版本的chromedriver。
大概这个站就像我的网站一样,根本就没被百度收录,不得不说还是谷歌靠谱。不过这个站是真的太xx了,下载等了我足足几个小时。
最终把rpm传到了服务器上,安装。又wget下来对应的chromedriver版本。安装成功!
这里把直接通过yum安装的方法放出来,可以先通过这个方法试一试:yum安装Chrome
本来想把我用的rpm都放上来,但是typecho不太给力,以后再说吧。
Debian
猪比移到docker容器里后,由于使用的Python3.8镜像,容器其实是个Debian系统,之前的rpm包已经不适用了,必须找个新的方法安装。
不过好在apt-get还是很给力的。这里放个连接,按照这个方法:apt-get安装Chrome(这里面说用gedit编辑,这边还是建议老牌的vim比较好用)
安装完毕后,看一下版本,然后去上面那个连接找对应版本wget下来安装即可
Step: 2 码代码
yum安装Chrome 这个文章里其实已经很详细了,包括乱码的处理方法。那这里我摆出猪比的截图代码,供大家参考:(建议用我这个)
options=webdriver.ChromeOptions()
# 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
options.add_argument('--headless')
# 谷歌文档提到需要加上这个属性来规避bug
options.add_argument('--disable-gpu')
# 取消沙盒模式
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# 指定浏览器分辨率
options.add_argument('window-size=1920x1080')
# 应用设置
driver=webdriver.Chrome(options=options)
#网页地址
driver.get(网页地址)
#等待2秒再截图,如果网页渲染的慢截图的内容会有问题
time.sleep(2)
#截图
driver.get_screenshot_as_file(保存路径)
#退出
driver.close()
总结
本篇主要侧重点在于Chrome及ChromeDriver的安装,因为这个但是是着实废了我不少力的。
如果我说的有错误或有更好的方法和见解,请评论指出,谢谢支持!
az
喝过茶了已经不干了哦
目前还有没有更新
有没有软件
有一个问题是我用我的笔记本Chrome浏览器,加载完成后过一段时间就页面卡住了。并且加载速度会放慢,如果不做出优化请慎用。