最近在工作上有个业务场景需要对网页进行批量截图,经过一番调研我最后使用Python+selenium的方案实现了全流程的自动化,今天就来和大家分享下通过Python实现网页截图的核心方法。
按照这个步骤,只要我们能用程序来模拟这个过程就可以实现自动化的截图了。
那怎么才能用程序来模拟对浏览器的操作呢?这里需要准备两个工具。
第一个工具是selenium,它是一个web 的自动化测试工具,在cmd中使用下面的命令即可完成selenium库的安装。
第二个工具是webdriver,从下图可以看出,selenium是通过webdriver来对浏览器进行控制的。大家可以从网上下载和自己浏览器对应的webdriver,下载时要注意版本的对应。
http://npm.taobao.org/mirrors/chromedriver/
https://github.com/mozilla/geckodriver/releases
http://selenium-release.storage.cat.net/index.html
https://webkit.org/blog/6900/webdriver-support-in-safari-10/
下面让我们来看一下以谷歌浏览器为例,对Python官网进行截图的代码。
# 从selenium库引入webdriver模块
from selenium import webdriver
# 通过webdriver打开浏览器
driver = webdriver.Chrome("D:/chromedriver.exe")
# 窗口最大化
driver.maximize_window()
# 打开网页
driver.get("https://www.python.org/")
# 网页截图
driver.get_screenshot_as_file("D:/output.png")
# 关闭浏览器
driver.quit()
可以看到代码简单到只用6行就结束了,截图效果如下所示:
今天和大家介绍了使用Python对网页的基本逻辑,在实际的应用中还会很多扩展的地方,比如长网页的截图、linux环境上要加额外的参数等,欢迎大家评论区讨论交流。
长按识别下方二维码,并关注公众号,在后台回复:HYBG,即可获取2019年200份行业分析报告(共1.01G)的下载链接。