目录

一.安装selenium第三方库

二.安装浏览器驱动

三.配置驱动器环境变量

1.项目环境变量

2.系统环境变量配置

四.项目实战

五.完整代码


一.安装selenium第三方库

使用pip安装第三方库selenium,直接使用pip安装第三方库,速度会比较慢,可以使用国内的源下载安装。这样速度会比较快。

pip install selenium

使用源安装第三方库selenium,这里我使用清华源做示例:

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


二.安装浏览器驱动

驱动下载链接:

http://chromedriver.storage.googleapis.com/index.html

不同的谷歌浏览器版本,必须选择与浏览器相对应的版本


打开gogle谷歌浏览器,查看你的浏览器版本,点击右上角的三个点,打开下拉菜单,并点击设置。

进入设置见面后,点击关于Chrome,浏览器一定要下载对应的版本,不然不能使用


三.配置驱动器环境变量

1.项目环境变量

创建项目,项目创建完成后将下载好的驱动器放入项目文件夹内。


2.系统环境变量配置

点击此电脑,点击属性

进入系统设置,选择高级系统设置。

进入界面,点击环境变量,配置环境变量。环境变量分为两种,一种是用户变量,一种是系统变量,用户变量和系统变量区别不大,同样都可以同,唯一的一点就是用户变量只能在该用户下使用,而系统变量,不同的用户都可以使用。 环境变量配置完成后,部分电脑需要重启IDE,或关机重启。使用代码进行测试。看环境变量是否被调用。

from selenuim import webdriver
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
#等待3秒后自动关闭
time.sleep(3)
driver.quit()

使用代码正常打开百度后关闭,证明配置的环境变量可以正常使用了。

这两种配置区别不大,关键在于,系统环境变量配置后,创建新项目时不需要频繁的去配置驱动。相对来说,直接配置项目环境也比较简单,没那么麻烦。


四.项目实战

1.新建项目,创建python文件,导入三个包。


2.包导入后就可以编译自动操作代码了。打开百度网页操作。获取百度网页链,打开谷歌浏览器,在网址栏输入“www.baidu.com” 搜索。并将完整的网页链接复制下来。

查看网页请求方式,网页的请求方式分为两种“get \ host” 。那么该如何查看呢。按键盘的F12,不同的电脑打开的方式也不一样,大部分的电脑都是F12。

 获取完请求方式后,就可以编辑代码实现打开网页操作了。

host = webdriver.Chrome()
host.get("https://www.baidu.com")  # 打开百度

这个就是自动打开网页操作代码。


3.在输入框内输入需要搜索的内容

首先我们需要找到搜索框的XPATH。

将ID里面的value值复制下来。 在这里我使用ID查找,因为在网页内,ID是唯一值,恒容易找到

# 找输入框
wd = host.find_element(by=By.NAME, value='wd')
# 输入对应的数据
ActionChains(host).move_to_element(wd).send_keys("123456").perform()

这个时候就可以在网页搜索框内输入需要的内容了,但是光是这一步还不够,正常的访问网页方式是,输入搜索内容,在点击搜索,最后网页才会返回搜索内容。没错,这里还差最后一步,点击搜索按钮操作。


4.同样的,我们需要找到搜索按钮的位置,用我们的代码去点击它。

同样的我们也使用网页的ID来做索引。

# 找"百度一下"按钮
su = host.find_element(by=By.ID, value='su')
# 执行点击操作
ActionChains(host).click(su).perform()

现在我么就实现了,使用代码打开百度,并搜索的自动化操作。


五.完整代码

# 打开某网页
from selenium import webdriver
# 在网页上执行某操作
from selenium.webdriver import ActionChains
# 获取网页数据
from selenium.webdriver.common.by import Byhost = webdriver.Chrome()
host.get("https://www.baidu.com")  # 打开百度
# 找输入框
wd = host.find_element(by=By.NAME, value='wd')
# 输入对应的数据
ActionChains(host).move_to_element(wd).send_keys("123456").perform()
# 找"百度一下"按钮
su = host.find_element(by=By.ID, value='su')
# 执行点击操作
ActionChains(host).click(su).perform()
"""
move_to_element()鼠标在标签位置停留
send_keys()在框内输入搜索内容
perform()执行操作,这是关键点,如果没有该操作前面的代码就不会执行相应的操作。
click()点击操作,相当与鼠标的单击
find_element()括号内是标签的地址,相当与XPATH表达式
find_element有多种用法,有ID,XPTATH,CLASS_NAME等多种表达式,这些必须使用英文大写,不然会报错
"""

在Selenium中的用处不仅仅是这些还有很多方法,这里就不一一讲解了,感谢大家的支持。

Selenium实现百度自动搜索操作详解相关推荐

  1. Java实现话术词槽匹配_桔子互动|百度UNIT操作详解(上篇)

    原标题:桔子互动|百度UNIT操作详解(上篇) 作者:令狐曦 文章简介: 本篇文章对UNIT的操作和注意事项进行详细说明,内容包括: 建立场景 配置对话单元/问答单元/高级设置 [配置对话单元] [配 ...

  2. python excel数据处理教程pdf_python对excel操作详解.pdf

    python对excel操作详解 拟 制 人 胡张东 太仓同维电子有限公司 审 批 人 xxx 测试中心软件测试科 时 间 2013-11-04 Python对Excel操作 详解 文档摘要: 本文档 ...

  3. 用python处理excel的基本语法_Python对Excel操作详解

    Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl tco ...

  4. Android集成百度定位以及导航详解

    Android集成百度定位以及导航详解                    百度地图Android SDK 官方下载地址:                            包括类参考.示例代码 ...

  5. countif和sum套用_if函数嵌套countif、sumif函数实例操作详解 你需要学习了

    excel中if函数嵌套countif函数实例操作详解,需要了解if函数.countif函数.sumif函数字符串引用方式,isblank函数 操作方法 01 用扫描枪连接excel后将自动将货物名称 ...

  6. sendkeys鼠标点击_selenium操作详解之鼠标键盘事件

    private WebDriver driver; @BeforeTest public void setUp() { System.setProperty("webdriver.chrom ...

  7. C 和 C++ 文件操作详解

    来源:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551662.html 来源:http://www.cnblogs.com/likebet ...

  8. MySQL操作之JSON数据类型操作详解

    MySQL操作之JSON数据类型操作详解 这篇文章主要介绍了MySQL操作之JSON数据类型操作详解,内容较为详细,具有收藏价值,需要的朋友可以参考. 概述 mysql自5.7.8版本开始,就支持了j ...

  9. java中的getnumber怎么用_java安全编码指南之:Number操作详解

    简介 java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧. Numb ...

最新文章

  1. yield学习续:yield return迭代块在Unity3D中的应用——协程
  2. 3.6 激活函数-深度学习-Stanford吴恩达教授
  3. P3225-[HNOI2012]矿场搭建【tarjan,图论】
  4. Java并行编程中的“可调用”与“可运行”任务
  5. hdfs 创建用户和用户组_HDFS原理 | 一文读懂HDFS架构与设计
  6. 收集最全的工业软件大集合
  7. 详解C语言中的使用(取地址符)
  8. python解析mht文件_php解析mht文件转换成html的实例
  9. java中23%5_23.5 jumpserver介绍
  10. sphinx php搜索引擎,sphinx 全文搜索引擎
  11. ps证件照白底换蓝底_【插件】PS插件证件照V2.0一键裁剪排版磨皮换装换底色软件2020Mac/Win完整版...
  12. org.hibernate.MappingException:unknown entity:com.lmy.model.User
  13. vue.runtime.esm.js?2b0e:619 [Vue warn]: Failed to mount component: template or render function not d
  14. oracle to_char 和 to_date的区别,斜杠和横杠日期转换,mybatis中入参日期,数据库字段是date的写法
  15. NDCG(归一化折损累计增益)
  16. MATLAB中利用cftool导出代码实现一张图中拟合多条平滑曲线
  17. 软件构造复习——面向对象编程(PPT7)
  18. 【javascript】车标JSON格式--汽车品牌JSON格式
  19. 软件定义和硬件重构知多少(二)
  20. Linux系统目录管理

热门文章

  1. eclipse war tomcat_Web基础配置篇(三): tomcat的配置及使用
  2. 读书笔记-每天5分钟玩转k8s
  3. community 计算模块度_【转载】金融风控反欺诈之图算法
  4. iOS开发图片控件(ImageView)绑定代码并显示一张图片
  5. Tomcat6优化汇总–让R61本本也能跑上两千
  6. GitHub 干货 | 各大数据竞赛 Top 解决方案开源汇总
  7. seaborn主题风格与调色板设定
  8. ASEMI三相整流桥的工作原理
  9. 微商从0加到5000好友实操方法.rar
  10. ValueError: Unable to determine SOCKS version from socks://127.0.0.1:2341/