垃圾站 网站优化 Python+selenium实现对网页的批量截图

Python+selenium实现对网页的批量截图

本案例将通过 Python + selenium 实现对网页的批量截图,案例即属于Python爬虫应用,也属于Python运维实战,大家可以重点学习思路。

Python+selenium实现对网页的批量截图插图

场景描述:

编写一个自动化脚本,对公司旗下的所有商户站点进行监控,当页面发生变化时,可以及时通知。

Selenium 配置

关于软件的安装,你可以翻阅橡皮擦之前的博客,有很多详细的配置教程,本文建立在你的 selenium 已经正常安装并可运行的基础上。

安装Selenium 时,需要注意本地浏览器的版本,便于下载相关驱动,参考博客 Python 自动化领域起点篇,Selenium WebDriver 学习第1篇

实现网页截图的代码如下所示,该代码仅实现单一页面截图。

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(executable_path='F:/chromedriver_win32/chromedriver.exe', chrome_options=chrome_options)

for i in range(10):
# 打开网页:
driver.get("https://www.pachong.vip/")
time.sleep(1)
# 网页截图
driver.get_screenshot_as_file("D:/screenshot/www.pachong.vip.png")
# 关闭浏览器
driver.quit()

接下来将其改造成从数据库读取商户域名地址即可。

import pymysql
import logging

logging.basicConfig(filename='D:/商户无法访问站点.log', level=logging.DEBUG)


db = pymysql.connect(host='服务器IP',
 user='root',
 password='服务器密码',
 database='数据库名称')
cursor = db.cursor()
e_sql = """SELECT url1,url2…… FROM 目标数据表 """

cursor.execute(e_sql)

results = cursor.fetchall()

urls = [y for x in results for y in x if y != '']

其中链接数据库之后,直接使用 fetchall 读取目标地址即可,在下文使用了如下生成器代码,主要用于提取URL,防止采集到空地址。

urls = [y for x in results for y in x if y != '']

上述代码还导入了 logging 模块,主要用于记录采集异常的数据,后续用于对数据进行分析。

上一篇
下一篇

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

返回顶部