当我们打开一个网页进行信息搜索时,少不了要对它进行点击和输入信息等操作,有的网页还可能需要你先登录才能开始其他操作。这篇博客就带大家来了解一下如何编写一段python代码实现打开并登录网页、对网页进行点击、输入信息等操作。

0.准备工作

  在开始之前,我们需要一些准备工作,一个能够编写并运行python代码的IDE(如:IDLE、PyCharm)、安装Python第三方函数库 Selenium、安装浏览器驱动。如何安装Selenium、浏览器驱动以及相应的一些介绍,这里放一个 链接 仅供大家参考,这里需要 注意 的是你下载的浏览器驱动的版本和你使用的浏览器版本应该是对应的。

1.打开一个网页

  接下来我们开始第一步:打开一个网页,这里以baidu.com为例,在python源程序中输入并运行下列代码:

#引入selenium库中的 webdriver 模块
from selenium import webdriver#打开谷歌浏览器
driver = webdriver.Chrome()
#打开百度搜索主页
driver.get('https://www.baidu.com')

运行结果如下:

2.在网页中输入信息

  以百度搜索主页为例,我们在使用时,需要在搜索框中输入我们需要搜索的信息,那我们怎么捕捉到页面中的搜索框并在其中输入信息呢?这时我们需要使用到selenium库中的 元素定位方法 ,这里我们希望通过 XPath 定位搜索框在网页中的 <input> 标签 ,调用find_element_by_xpath()方法,在参数中输入 路径表达式 来定位搜索框,代码如下:

'''
调用selenium库中的find_element_by_xpath()方法定位搜索框,
同时使用send_keys()方法在其中输入信息
'''
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('this is a test')

运行结果如下:

  那么大家现在可能会有一个疑问是,应该如何获取搜索框的路径表达式呢?我们按 F12 或右键打开网页的元素审查窗口,点击窗口顶部的元素选择按钮,之后选中搜索框,此时已定位到搜索框在网页中的 <input> 标签,右键选择Copy XPath即可。详细步骤看图:

3.对网页进行点击

  在搜索框中输入将要搜索的信息之后,需要点击搜索按钮进行搜索,搜索按钮的路径表达式获取方式与步骤二一致,代码如下:

'''
调用selenium库中的find_element_by_xpath()方法定位搜索按钮,
同时使用click()方法对按钮进行点击
'''
driver.find_element_by_xpath('//*[@id="su"]').click()

运行结果如下:

步骤①至③完整代码如下:

#引入selenium库中的 webdriver 模块
from selenium import webdriver#打开谷歌浏览器
driver = webdriver.Chrome()
#打开百度搜索主页
driver.get('https://www.baidu.com')
'''
调用selenium库中的find_element_by_xpath()方法定位搜索框,
同时使用send_keys()方法在其中输入信息
'''
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('this is a test')
'''
调用selenium库中的find_element_by_xpath()方法定位搜索按钮,
同时使用click()方法对按钮进行点击
'''
driver.find_element_by_xpath('//*[@id="su"]').click()

4.打开并登录网页

  如果你对上述三个基础操作有了足够清楚的认识,那么如何实现打开并登录一个网页,你的心里一定有了一些想法,下面以登录 智慧树学习平台 为例,看看和你想的一样嘛?代码如下:

#引入selenium库中的 webdriver 模块
from selenium import webdriver
#引入time库
import time#打开谷歌浏览器
driver = webdriver.Chrome()
#打开智慧树学习平台
driver.get('https://www.zhihuishu.com/')
'''
考虑到网页打开的速度取决于每个人的电脑和网速,
使用time库sleep()方法,让程序睡眠5秒
'''
time.sleep(5)
#在主页面点击登录按钮,进入登录页面
driver.find_element_by_xpath('//*[@id="notLogin"]/span/a[1]').click()
#输入账号和密码
driver.find_element_by_xpath('//*[@id="lUsername"]').send_keys('账号')
driver.find_element_by_xpath('//*[@id="lPassword"]').send_keys('密码')
#点击登录按钮
driver.find_element_by_xpath('//*[@id="f_sign_up"]/div[1]/span').click()

登录界面如下:

编写python代码实现打开并登录网页、对网页进行点击、输入信息等操作相关推荐

  1. 人生苦短,使用百度云SDK,编写python代码调用接口的车牌识别

    两个想法 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 自己实现车牌识别算法(复杂) 一开始准备使用百度云文字识别C++ SDK来做,发现需 ...

  2. python代码错误有哪些_在编写python代码时,小白最容易犯的十几个错误 !

    原标题:在编写python代码时,小白最容易犯的十几个错误 ! 1).忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 " ...

  3. 使用微软VS2015编写python代码

    使用微软VS2015编写python代码 by 李远祥 最近也有不少人问python代码编写使用什么工具比较好?关于工具的问题,好像是个亘古不变的话题.对于一些程序高手来说,很多时候就是使用文本编辑器 ...

  4. 使用Eclipse编写Python代码

    简直大开眼界!!!深度学习的代码一般是用Python写的,但现实中APP通常是用Java,免不了互相调用函数.这个时候,用Eclipse同时编写Java和Python代码就很香了.操作过程如下: 1. ...

  5. android studio调用python,Android studio中编写Python代码-2

    Chaquopy 教程 Chaquopy Chaquopy的作用:使用Chaquopy在Android Studio添加Python环境,java和Python互调 目前调试后APP可以正常运行(20 ...

  6. Mac,VSCode编写Python代码示例

    Mac,VSCode编写Python代码示例 之前写Python代码一直用的是Pycharm,后来发现VSCode更加直(jian)观(dan)简(cu)洁(bao) ,于是赶紧在官网下载好VSCod ...

  7. 手机python代码写好了怎么运行-想在手机上编写python代码?手机上玩转python的利器...

    QPython:Android上的Python解释器 <QPython>是一个脚本引擎,他整合了Python解释器.Console.编辑器和SL4A库.可以让你在Android设备上运行P ...

  8. python怎么输入代码-如何编写python代码

    一.Linux系统下:终端输入Python ,Python2, 都是默认进入的2版本 终端输入python3, 默认进入3版本, exit() 退出 二.编写python的程序方法 打开终端--输入p ...

  9. anaconda如何做python笔记_Anaconda中Jupyter的基本使用 简单的编写Python代码和整理笔记...

    Anaconda是一个基于数据分析和机器学习的集成环境.jupyter是anaconda提供的一个基于浏览器的可视化开发工具.也就是说我们安装好Anaconda就可以使用jupyter. jupyte ...

最新文章

  1. T端音乐盒子-NPC脚本
  2. network重启失败原因
  3. 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解-破解软件论坛-ZOL中关村在线...
  4. linux 复制文件_使用 rsync 复制大文件的一些误解 | Linux 中国
  5. hdu4504java
  6. 计算机系统的基础必备软件,电脑必装软件推荐:基础篇——够用就行
  7. SpringBoot注解校验validation自定义异常返回错误消息给前端
  8. 电脑带不动虚幻引擎渲染卡顿怎么办?本文给你支招
  9. vscode web版,走到哪用到哪
  10. 支付宝免签 个人支付宝到银行卡
  11. RecyclerView在GridLayoutManager情况下实现四周都有分割线的ItemDecoration
  12. 华硕路由器配置虚拟服务器,华硕ASUS路由器无线中继模式设置步骤图解
  13. 蓝本蓝科技:私域运营为什么要做会员?会员体系的优势?
  14. 洞察市场需求,深耕大健康赛道,缤跃酒店打造一站式运动酒店品牌
  15. ORA-12560:TNS:协议适配器错误的解决方案
  16. 【技术分享】美团外卖的商业变现的技术思考和实践
  17. CAD高版本转低版本的方法有哪些?
  18. Redis之Vs Memcached
  19. 网页视频直播、微信视频直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的直播接入需求
  20. centos 7.9系统安装 GT730显卡驱动问题,请帮忙下

热门文章

  1. wordpress备份和还原和迁移
  2. 网络维护工程师的要求是什么?
  3. 百度地图开发之实现运动轨迹 二
  4. 洛谷P2245 星际导航
  5. pageoffice在线打开word文件加盖电子印章
  6. Go语言实现获取有道网页结果
  7. 毕业设计 单片机遥控小车设计与实现
  8. 无线降噪耳机品牌推荐,值得入手的四款降噪蓝牙耳机
  9. 关于Angular,开发人员经常忽视的9个想法
  10. IDEA主题配置--- 炫酷的主题字体颜色设置(基于Intellij IDEA 2018)