一行代码实现 Python+selenium 批量截取网页,重要代码仅一行

Posted 梦想橡皮擦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一行代码实现 Python+selenium 批量截取网页,重要代码仅一行相关的知识,希望对你有一定的参考价值。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 621 篇原创博客

畅销专栏,打折促销中~

文章目录

⛳️ 实战场景

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

场景描述:

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

⛳️ 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 模块,主要用于记录采集异常的数据,后续用于对数据进行分析。

📣📣📣📣📣📣
右下角有个大拇指,点赞的漂亮加倍

欢迎大家订阅专栏:
⭐️ ⭐️ 《Python 爬虫 120》⭐️ ⭐️

以上是关于一行代码实现 Python+selenium 批量截取网页,重要代码仅一行的主要内容,如果未能解决你的问题,请参考以下文章

selenium+python自动化78-autoit参数化与批量上传

selenium+python自动化78-autoit参数化与批量上传转载

python3.5 jira网站实现用户的批量插入

python写的selenium测试脚本,run.py文件引测试脚本怎么批量引入?

python识别批量网站中的图片

python+selenium 下载网易云音乐 支持批量下载