python+selenium实现网页自动化与爬虫技术
目录:
举例某购物网站,通过selenium与python,实现主页上商品的搜索,并将信息爬虫保存至本地excel表内。
一、python环境与selenium环境安装
python在官网下载并安装并且设置环境变量。
selenium通过命令行下,pip install selenium进行安装,python与selenium都建议使用3.0版本
这里使用chrome浏览器,下载chrome对应版本的webdrver驱动,将webdriver驱动放在python跟目录下。

chrome浏览器的版本通过这个方法查询:帮助-关于Google Chrome(G)

二、搜索商品后点击搜索按钮提交
这里需要用到selenium库、time库(其中sleep用于等待)以及xlwt(用于保存excel表)
from selenium import webdriver
from time import sleep
import xlwt
#打开浏览器,这里用的chrome
d=webdriver.Chrome()
#设置窗口最大化
d.maximize_window()
#设置隐式等待
d.implicitly_wait()
#打开网页
d.get("https://www.jd.com/")
#使用元素定位id找到搜索框
d.find_element_by_id("key").send_keys("洗发水")
#使用xpath定位到搜索按钮
d.find_element_by_xpath("/html/body/div[1]/div[4]/div/div[2]/div/div[2]/button").clic

三、元素定位,找到对应信息,并保存
#初始化excel表
excel=xlwt.Workbook(encoding="utf-8")
#增加sheet页
sheet=excel.add_sheet("sheet1",cell_overwrite_ok=True)
#定义第1行的内容,以及初始化num,用于从第二行开始写入对应的数据
sheet.write(,,'序号')
sheet.write(,,'商品')
sheet.write(,,'价格')
num=
#通过元素定位面找到,在页面上找到对应商品的各个元素位置
goods=d.find_elements_by_xpath("/html/body/div[6]/div[2]/div[2]/div[1]/div/div[2]/ul/li")
sleep()
for good in goods:
#分别找到商品与价格所在的元素,并且取其中的文本信息,并去空行
price=good.find_element_by_xpath("div/div[3]/strong").text.replace("\n","-")
goodtext=good.find_element_by_xpath("div/div[4]/a/em").text.replace("\n","-")
sheet.write(num,,num)
sheet.write(num,,goodtext)
sheet.write(num,,price)
num+=
#print(goodtext,"|",price)
#保存至excel表
excel.save(r"C:\Users\Mr.White\Desktop\test001\jd.xls")
#页面退出
d.quit()

四、结果预览与总结

1、网页自动化过程中最主要的难度是元素定位,后面会专门去介绍一下元素定位
2、页面可能随着前端代码的变化,会使原本可以跑通的脚本失效,有一定维护成本,如何设计合理的自动化脚本就显得比较重要。
python+selenium实现网页自动化与爬虫技术的更多相关文章
- 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...
- 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...
- 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...
- 【Selenium06篇】python+selenium实现Web自动化:日志处理
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第六篇博 ...
- 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...
- 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...
- 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...
- Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6
1. 由于使用Python Selenium做网页自动化测试时,有截取网页上的中文信息保存到测试结果中,最终出现编码错误如下: File "D:/PycharmProjects/AutoTe ...
- python+selenium封装UI自动化框架
seleinum框架 框架的思想: 解决我们测试过程中的问题:大量的重复步骤,用自动化来实现 1)配置和程序的分离 2)测试数据和程序的分离 3)不懂编程的人员可以方便使用:使用的 ...
随机推荐
- python之面向对象的关系
一.从空间角度研究类 类外面可以给对象封装属性 class A: address = '美丽富饶的沙河' def __init__(self, name): self.name = name def ...
- OpenCV-Python OpenCV中的K-Means聚类 | 五十八
目标 了解如何在OpenCV中使用cv.kmeans()函数进行数据聚类 理解参数 输入参数 sample:它应该是np.float32数据类型,并且每个功能都应该放在单个列中. nclusters( ...
- Docker笔记(十三):容器日志采集实践
日志是服务运行过程中的一个关键环节,借助日志,我们可以排查定位问题,也可以借助集中化的日志管理平台(如ELK)来做一些必要的数据统计分析.在Docker环境中,日志的采集比传统环境更为复杂,因此了解D ...
- Jmeter接口测试之用户自定义变量(九)
在使用Jmeter做接口自动化测试中,经常会使用到公共的数据,那么就需要对这些公共的数据分离出来,不管是基于测试框架的思想,还是使用工具来进行做自动化测试,公共数据的分离首先是需要思考的.这里就以获取 ...
- 【WPF学习】第六十一章 组织模板资源
为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动. 当使用控件模板时,需要决定如何更广泛地共享模板,以及是否希望自动地 ...
- Html,css构建一个对话框,练习201911281028
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- Django-CBV&FBV
django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. urls.py from django.conf.u ...
- 从 Socket 编程谈谈 IO 模型(三)
快过年啦,估计很多朋友已在摸鱼的路上.而我为了兄弟们年后的追逐,却在苦苦寻觅.规划,导致文章更新晚了些,各位猿粉谅解. 上期分享,我们结合新春送祝福的场景,通过一坨坨的代码让 BIO.NIO 编程过程 ...
- 【Net】ABP框架学习之它并不那么好用
前言 上一篇文章介绍了ABP的Web API,本文在继续介绍ABP的其他内容. 在ABP中,WEBAPI是一个值得用的东西.但其他东西,就不一定是那么好用了. 下面我们看一下ABP的Controlle ...
- Ptask
这是一款非常弱鸡的小程序,不喜勿喷 你们好!如在使用中有bug或者有您宝贵的建议请在下方评论区留言或者投递至我的邮箱:Mj_Ymr@outlook.com. 那么我也会不断更新,并在这里贴上各版本的下 ...