本文介绍如何使用Python的selenium库制作脚本。
概念:
       Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,可以模拟人工手动进行操作浏览器。
       使用准备:
              第一步:安装selenium

pip install Selenium

首先点击Terminal,等价于cmd命令行,输入命令,会自动下载selenium库。
       补充:对于Python第三方库,会有安装慢,容易失败,可以使用国内的清华源安装一些库,最后一个是库名,使用的是国内的清华源(可以百度)
       清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名

第二步:安装浏览器驱动
先查看自己Chrome的版本信息

版本是96.0.4664.45。

       所以下载对应的版本即可,如果没有对应的版本,就向上找,找比自己版本小的驱动版本。
       小伙伴可以自己看看自己应该下载哪个版本。
       64的可以下载32位的压缩包。
       Chrome驱动:下载驱动
       下载完将压缩包解压,将exe文件放到自己的Python解释器下即可,
       如果找不到自己的Python解释器位置,可以运行一个Python程序,运行结果的显示框第一行就是Python解释器的位置。
       找到下面路径,将驱动文件粘贴进去即可。

准备工作做完了

              第三步:编写代码
导入库:

#因为驱动文件是Chrome,所以导入Chrome
from selenium.webdriver import Chrome
#导入time库,是因为有时候网络可能不好,网页加载延迟,
#导致命令执行到了而找不到页面元素从而报错,等小伙伴上手操作会有体验
import time
#用于处理一些网页获得的字符串
import re
#导入By,用于获取元素
from selenium.webdriver.common.by import By

创建浏览器:

#创建浏览器对象
web = Chrome()
#程序睡眠1s
time.sleep(1)
#打开这个网址
web.get('http://www.baidu.com')
#输出页面的title
print(web.title)

获取元素:

右键点击:

复制,复制完整的XPath:

这个地方少一张图,这一步是复制XPATH,或许还有个full XPATH,不要弄混了,是XPATH
然后将粘贴到程序即可:
在这里我只解释下面用到的方法。

方法 作用
send_keys() 向一个元素中写入字符串
click() 点击某个元素
text 获取标签的文本
title 获取页面的标题
#通过By.XPATH获取元素,
print(web.title)
text = web.find_element(By.XPATH,'/html/body/div[1]/div[1]/div[3]/a[1]').text
print(text)
web.find_element(By.XPATH,'/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys("Python")
time.sleep(2)
web.find_element(By.XPATH,'/html/body/div[1]/div[1]/div[5]/div[2]/div/form/span[2]/input').click()

如果有以下错误,找不到元素,在确定没有写错的情况下,可以添加。
原因是程序运行较快,网页没有加载出来,导致程序找不到这个元素。
让程序睡眠一会即可。

tim.sleep(2)

错误截图:

有些网站具有反爬机制。
如果想要后台运行,可以将创建浏览器与包改为下面

from selenium import  webdriver
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.common.by import By
chrome_options = Options()

chrome_options.add_argument('--headless')

web = webdriver.Chrome(options=chrome_options)

大家可以练一练,提示:可以做刷题脚本。

使用Python的selenium库制作脚本,支持后台运行的更多相关文章

  1. python爬虫---selenium库的用法

    python爬虫---selenium库的用法 selenium是一个自动化测试工具,支持Firefox,Chrome等众多浏览器 在爬虫中的应用主要是用来解决JS渲染的问题. 1.使用前需要安装这个 ...

  2. 安装python的selenium库和驱动

    对于使用selenium来进行python爬虫操作可以简化好多操作,它实际上的运行就是通过打开一个浏览器来一步一步的按照你的代码来执行 如果安装过python编译器后应该pip工具也是有的,验证pyt ...

  3. Python爬虫-- selenium库

    selenium库 selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(S ...

  4. python利用selenium库识别点触验证码

    利用selenium库和超级鹰识别点触验证码(学习于静谧大大的书,想自己整理一下思路) 一.超级鹰注册:超级鹰入口 1.首先注册一个超级鹰账号,然后在超级鹰免费测试地方可以关注公众号,领取1000积分 ...

  5. 浅谈python中selenium库调动webdriver驱动浏览器的实现原理

    最近学web自动化时用到selenium库,感觉很神奇,遂琢磨了一下,写了点心得. 当我们输入以下三行代码并执行时,会发现新打开了一个浏览器窗口并访问了百度首页,然而这是怎么做到的呢? from se ...

  6. 解决python 导入selenium 库后自动化运行成功但是报错问题

    本章节开始进入自动化的基础教学了,首先我们要对我们的工具有一定的熟练使用程度,做自动化常用的工具一个是搭建 RobotFramework自动化框架,另外一个便是我们最常用的python 工作原理是比较 ...

  7. Python:利用 selenium 库抓取动态网页示例

    前言 在抓取常规的静态网页时,我们直接请求对应的 url 就可以获取到完整的 HTML 页面,但是对于动态页面,网页显示的内容往往是通过 ajax 动态去生成的,所以如果是用 urllib.reque ...

  8. 使用python的selenium库刷超星网课

    网课很多看不完呀 所以动手做了一个基础的自动答题和下一节的程序 用到了python 3 selenium Chrome 如何自动化Chrome?https://www.cnblogs.com/eter ...

  9. Python 中 selenium 库

    目录 selenium 基础语法 一. 环境配置 1. 安装环境 2. 配置参数 3. 常用参数搭配 4. 分浏览器启动 二. 基本语法 1. 元素定位 2. 控制浏览器操作 3. 操作元素的方法 3 ...

随机推荐

  1. springboot+layui 整合百度富文本编辑器ueditor入门使用教程(踩过的坑)

    springboot+layui 整合百度富文本编辑器ueditor入门使用教程(踩过的坑) 写在前面: ​ 富文本编辑器,Multi-function Text Editor, 简称 MTE, 是一 ...

  2. BUUCTF-RAR

    rar 看提示知道爆破压缩包的题,纯数字4位数拿出ARCHPR爆破即可.

  3. Vue 3.0 有哪些新特性值得我们提前了解

    一.迎接 Vue 3.0 简介 ​ Vue.js 作者兼核心开发者尤雨溪宣布 Vue 3.0 进入 Beta 阶段. 已合并所有计划内的 RFC 已实现所有被合并的 RFC Vue CLI 现在通过 ...

  4. C#判断数组或集合中是否含有属性值为value的对象

    /// <summary> /// 判断list中是否有某个对象的Id_srvplan为value /// </summary> /// <param name=&quo ...

  5. 数据库系列:MySQL索引优化总结(综合版)

    1 背景 作为一个常年在一线带组的Owner以及老面试官,我们面试的目标基本都是一线的开发人员.从服务端这个技术栈出发,问题的范围主要还是围绕开发语言(Java.Go)等核心知识点.数据库技术.缓存技 ...

  6. centos系统和Ubuntu系统命令区别以及常见操作

    目录 一.前言 二.系统环境 三.命令区别 3.1 使用习惯和命令区别 3.2 服务管理的区别 3.3 软件包信息区别 四.Ubuntu系统常见操作 4.1 Ubuntu系统apt和apt-get的区 ...

  7. Linux系列之查找命令

    前言 Linux 有四个常用的查找命令:locate.whereis.which 和 find.本文介绍它们的区别和简单用法. locate命令 这个命令将检查你的整个文件系统,并找到该关键词的每一次 ...

  8. 关于android sdk中monitor.exe报错的问题

    今天又是被坑的一上午.来总结一下: 1. 首先是找不到monitor的问题: 这个可能是一开始环境配置错误.所以我将android sdk重装了一下就好了 2. 第二个是找到monitor.bat发现 ...

  9. HelloWord程序代码的编写和HelloWord程序的编译运行

    1.新建文件夹,存放代码 2.新建一个Java文件 文件后缀名.java(Hello.java) 3.编写代码public class Hello{public static void main(St ...

  10. java,接口

    package Demo.oop.APP.Demo07; //interface 定义接口的关键字:接口都需要实现类 public interface UserService { //接口中的所有的定 ...