python自动化程序操作浏览器在后台访问网站

news2024/11/15 11:06:40

目录

  • 1、简介
  • 2、详细步骤
  • 3、驱动
    • 3.1、ChromeDriver
    • 3.2、GeckoDriver
    • 3.3、Microsoft WebDriver
    • 3.4、下载链接
  • 4、完整代码

⭐在当今信息化的时代,访问网站已经成为人们生活中必不可少的一部分。

1、简介

对于某些需要批量访问网站的任务,手动访问既费时又费力。因此,自动化批量后台访问网站的程序的需求日益增加。Python作为一门强大的编程语言,有着广泛的应用,可以很好地解决这个问题。
本文将介绍如何用Python实现自动化批量后台访问网站的程序,并给出相应的代码实现。

2、详细步骤

首先,我们需要安装selenium库,它是一个自动化测试工具,可以用来驱动浏览器进行网站操作。在Python中,我们可以使用pip install selenium命令进行安装。

导入time和selenium库:
  在这里插入图片描述

time库是Python中一个与时间相关的标准库,可以提供一些时间相关的函数。而selenium库则是一个用于Web自动化测试的库,可以模拟浏览器操作。

接下来,我们创建一个谷歌浏览器对象:
  在这里插入图片描述

这里我们使用了Chrome浏览器,并使用了webdriver模块的Chrome方法来创建一个浏览器对象。需要注意的是,我们需要先安装对应版本的Chrome浏览器和对应版本的ChromeDriver驱动程序,并将驱动程序的路径添加到系统的环境变量中。

然后,我们使用with open语句来读取名为存储url.txt的文件中的URL:
  在这里插入图片描述

这里我们使用了with语句,可以在with语句块结束时自动关闭文件。我们使用readlines方法来读取文件中的所有行,并将其存储在一个列表中。

接下来,我们使用一个while True循环来不断地访问URL:
  在这里插入图片描述

在循环中,我们首先使用with open语句重新读取一遍URL,并将其存储在urls列表中。
然后我们使用for循环来遍历urls列表中的每一个URL。
在for循环中,我们首先使用strip方法来去掉URL中可能存在的空格和换行符。
然后,我们使用try-except语句来访问该URL。
如果访问成功,我们就输出访问的是第几个URL,然后暂停1秒钟。
需要注意的是,这里我们使用了time库的sleep方法来暂停程序执行,以免访问过于频繁被网站识别为机器人。
最后,我们将访问的URL的编号i加1。

3、驱动

3.1、ChromeDriver

ChromeDriver是一个独立的可执行文件,用于在WebDriver客户端和Google Chrome浏览器之间进行通信。它作为客户端和浏览器之间的中介,促进了从客户端发送命令到浏览器,并从浏览器接收响应返回到客户端的过程。

ChromeDriver对于自动化测试和其他需要与Chrome浏览器交互的任务是必不可少的。它可以与多种编程语言一起使用,例如Java、Python等。通过使用ChromeDriver,开发人员可以编写自动化脚本来模拟用户在浏览器中的行为,例如单击按钮、填写表单和导航到不同的网页。这使得测试和其他任务可以更快速、更可靠地完成。

3.2、GeckoDriver

Firefox有一个名为GeckoDriver的驱动程序,它与ChromeDriver类似,也是一个独立的可执行文件,用于在WebDriver客户端和Firefox浏览器之间进行通信。GeckoDriver的作用与ChromeDriver类似,它可以让开发人员通过编写自动化测试脚本或其他自动化任务来模拟用户在Firefox浏览器中的行为,例如导航到不同的网页、填写表单、单击按钮等。GeckoDriver可以与多种编程语言一起使用,例如Java、Python、Ruby等。

3.3、Microsoft WebDriver

Microsoft Edge有一个名为Microsoft WebDriver的驱动程序,它与ChromeDriver和GeckoDriver类似,也是一个独立的可执行文件,用于在WebDriver客户端和Edge浏览器之间进行通信。Microsoft WebDriver的作用与其他WebDriver驱动程序类似,它可以让开发人员通过编写自动化测试脚本或其他自动化任务来模拟用户在Edge浏览器中的行为,例如导航到不同的网页、填写表单、单击按钮等。Microsoft WebDriver可以与多种编程语言一起使用,例如Java、Python、C#等。

3.4、下载链接

在以下链接下载ChromeDriver、GeckoDriver和Microsoft WebDriver:

  1. ChromeDriver下载链接:https://sites.google.com/a/chromium.org/chromedriver/downloads
  2. GeckoDriver下载链接:https://github.com/mozilla/geckodriver/releases
  3. Microsoft WebDriver下载链接:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

这些链接提供了不同平台的驱动程序下载,例如Windows、Mac和Linux等操作系统。你需要根据你的操作系统类型和浏览器版本下载相应的驱动程序。下载完成后,你需要将驱动程序添加到系统的PATH环境变量中,以便WebDriver客户端可以找到驱动程序并与浏览器进行通信。

4、完整代码

接下来,是完整代码实现,可以实现自动化批量后台访问网站的程序:

import time
from selenium import webdriver

# 创建谷歌浏览器对象
browser = webdriver.Chrome()

with open('存储url.txt', 'r') as f:
    urls = f.readlines()

while True:
    with open('URL.txt', 'r') as f:
        urls = f.readlines()
    i = 1
    for url in urls:
        url = url.strip()
        try:
            browser.get(url)
        except:
            print("失败")
        else:
            print("访问第%d篇" % i)
            time.sleep(1)
            i += 1

URL应该一行一个,不要有多余的空行。

通过上述代码的实现,我们可以方便地进行自动化批量后台访问网站的任务,实现高效的网站操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java - Thread、ThreadLocal、ThreadLocalMap

一、概念 用处每个线程需要持有自己单独的数据,数据在同线程中被多个地方共享,但多线程中不共享。原理创建 ThreadLocal 对象用来存取值,操作的是 CurrentThread 里的 ThreadLocalMap,由于每个 Thread 中都有自己的 ThreadLocalM…

Codeforces Round 870 (Div. 2)

Codeforces Round 870 (Div. 2) A. Trust Nobody 题意: 给你一个数组a,a[i]表示第i个人认为至少有a[i]个人说谎,请你找到正确的说谎人数 思路: 我们认为说谎人数有x人,那么数组a中大于x的元素都是说谎,…

rosbag相关操作

一些很好用的网站 时间戳在线转换网页 旋转矩阵、四元数、绕轴旋转、欧拉角在线转换网页 四元数、欧拉角可视化在线转换网页 一、按时间截取bag 使用如下代码&#xff1a; rosbag filter 原始包名.bag 截取后的包名.bag "t.to_sec() > 开始时间 and t.to_sec() <…

机器学习随记(3)— Softmax

Softmax 与sigmoid不同&#xff0c;softmax可以多个输出&#xff0c;每个输出以概率的形式表示。 或者 def my_softmax(z):ez np.exp(z) sm ez/np.sum(ez)return(sm) 1 损失函数Loss Softmax 相关的损失函数&#xff0c;即交叉熵损失&#xff1a; 2 成本函数Cos…

Vben Admin 自学记录 —— 路由跳转的基本使用及练习(持续更新中...)

路由 项目路由配置存放于 src/router/routes 下面。 src/router/routes/modules用于存放路由模块&#xff0c;在该目录下的文件会自动注册。 路由相关使用及概念 练习 —— 在之前table基础上&#xff0c;添加新增功能&#xff0c;点击新增按钮&#xff0c;跳转页面&#xf…

电脑中病毒了怎么修复、怎么办,计算机windows系统如何预防faust勒索病毒

随着科技技术的不断发展&#xff0c;计算机已经成为现代人工作和生活中的必备工具之一&#xff0c;同时衍生出的各种计算机病毒也越来越多。各种勒索家族的加密病毒程序不断升级&#xff0c;给我们的工作和生活带来了极大困扰&#xff0c;特别是最近爆发的一种新型计算机病毒—…

如何优化 yolov8 模型,压缩模型大小,部署到边缘设备上

在CV领域&#xff0c;YOLO系列目标检测模型是一种非常流行的深度学习网络模型。yolov8是23年1月10号开源的最新版本。虽然YOLOv8已经在精度和速度方面取得了显著的改进&#xff0c;但我们仍然可以从轻量化角度等很多方面来进一步优化该模型。 模型压缩&#xff1a;使用轻量化的…

华为EC6108V9A_RK3128_安卓4.4.4_卡刷固件包-内有教程-当贝纯净桌面

华为EC6108V9A_RK3128_安卓4.4.4_卡刷固件包-内有教程-当贝纯净桌面 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的软件&a…

不用花一分钱!!!获得一个自己的网页版chatGPT

不用花一分钱&#xff01;&#xff01;&#xff01;获得一个自己的网页版chatGPT 当然还是需要一个chatGPT账号的&#xff0c;不会注册的同学可以看一下这篇文章 chatGPT到底要怎么注册 那就先让我们看一下效果吧 chatgpt-web介绍 github项目地址 https://github.com/Chanzha…

【源码解析】实现异步功能的注解 @Async 的源码解析

使用方式 启动类上添加注解EnableAsync()在方法或者类上添加Async 源码解析 初始化配置 EnableAsync注入了AsyncConfigurationSelector Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) Documented Import(AsyncConfigurationSelector.class) public interf…

【郭东白架构课 模块二:创造价值】23|节点四:架构规划之统一语义

你好&#xff0c;我是郭东白。从这节课开始&#xff0c;我们就进入到架构活动的第四个环节——架构规划。这个环节比较复杂&#xff0c;可以分为四个部分&#xff1a;统一语义、需求确认、边界划分和规划确认。这节课我们先来讲统一语义。 架构师的工作日常就是跟不同的角色沟…

Mysql索引(4):索引语法

1 创建索引 CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name (index_col_name,... ) ; 2 查看索引 SHOW INDEX FROM table_name; 3 删除索引 DROP INDEX index_name ON table_name; 4 案例演示 先来创建一张表 tb_user&#xff0c;并且查询测试数据。 creat…

从零开始学习Linux运维,成为IT领域翘楚(九)

文章目录 &#x1f525;Linux系统服务&#x1f525;Linux系统定时任务 &#x1f525;Linux系统服务 Service命令 服务(service) 本质就是进程&#xff0c;但是是运行在后台的&#xff0c;通常都会监听某个端口&#xff0c;等待其它程序的请求&#xff0c;比如(mysql , sshd 防…

Vue加SpringBoot实现项目前后端分离

首先需要搭建一个Vue的脚手架项目&#xff08;已经放在gitee里面了&#xff0c;下面是gitee网址&#xff0c;可以直接拉&#xff09; 那么接下来就是实现前后端分离的步骤 首先我们需要有一个登录页面 登录的点击事件利用axios提交到后台去&#xff0c;代码放在后面&#xff08…

【C++修炼之路:二叉搜索树】

目录&#xff1a; 二叉搜索树的概念构建一颗二叉树二叉树的查找二插树的插入 二叉树的删除删除右子树的最小节点 写一个中序来走这个二叉搜索树递归版删除&#xff08;recursion&#xff09;递归版插入&#xff08;recursion&#xff09;递归版查找&#xff08;recursion&#…

基于AT89C51单片机的电子密码锁设计与仿真

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87760996?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; &#xff08;1&#xff09;本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。 &a…

类和对象中(1)

文章目录 一、类的6个默认成员函数二、构造函数1、概念2、构造函数只初始化自定义类型3、对于不会初始化内置类型的补丁4、构造函数优点 三、析构函数1、概念2、什么时候需要自己写析构函数 &#xff1f;3、构造和析构顺序差异 四、拷贝构造函数1、概念2、拷贝构造下传值会无限…

MySQL环境搭建——“MySQL数据库”

各位CSDN的uu们你们好呀&#xff0c;小雅兰又来啦&#xff0c;好久没有更文啦&#xff0c;今天继续&#xff01;&#xff01;&#xff01;今天小雅兰的内容是MySQL环境搭建&#xff0c;下面&#xff0c;让我们进入MySQL数据库的世界吧 MySQL的卸载 MySQL的下载、安装、配置 M…

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

设备直通是一种虚拟化资源分配方式&#xff0c;通过将物理设备直通给虚拟机环境&#xff0c;达到虚拟机可以直接访问物理设备的目的&#xff0c;直通功能对设备的要求不高&#xff0c;不需要设备支持PF/VF&#xff0c;18年后的普通家用PC的PCI设备都支持设备直通模式&#xff0…

【Java】Java对象的比较

Java对象的比较 PriorityQueue中插入对象元素的比较基本数据类型的比较对象的比较重写基类的equals方法基于Comparble接口类的比较基于比较器进行比较 PriorityQueue中插入对象 优先级队列在插入元素时有个要求&#xff1a;插入的元素不能是null或者元素之间必须要能够进行比较…