目录:

一、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实现网页自动化与爬虫技术的更多相关文章

  1. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  2. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  3. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  4. 【Selenium06篇】python+selenium实现Web自动化:日志处理

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第六篇博 ...

  5. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  6. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  7. 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...

  8. Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6

    1. 由于使用Python Selenium做网页自动化测试时,有截取网页上的中文信息保存到测试结果中,最终出现编码错误如下: File "D:/PycharmProjects/AutoTe ...

  9. python+selenium封装UI自动化框架

    seleinum框架 框架的思想:  解决我们测试过程中的问题:大量的重复步骤,用自动化来实现    1)配置和程序的分离    2)测试数据和程序的分离    3)不懂编程的人员可以方便使用:使用的 ...

随机推荐

  1. mysql数据库中的mybatis中xml解决in不起作用的问题

    在sql语句中,某个字段进行in条件的时候,不起作用, 但是执行语句查询为null数据,但是根据表中数据来看是不可能有null数据的可能性的,所以不知道什么原因导致数据出不来 我因此想到以下解决办法来 ...

  2. 使用Keras进行深度学习:(二)CNN讲解及实践

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 现今最主流的处理图像数据的技术当属深度神经网络了,尤其是卷积神经网 ...

  3. 二分搜索树(Binary Search Tree)

    目录 什么是二叉树? 什么是二分搜索树? 二分搜索树的基本操作 二分搜索树添加新元素 二分搜索树的遍历(包含非递归实现) 删除二分搜索树中的元素 什么是二叉树?   在实现二分搜索树之前,我们先思考一 ...

  4. Linux/CentOS7搭建Anaconda运行环境

    1. 安装miniconda 下载并安装miniconda到$HOME/.miniconda/ #从官网下载 wget -c "https://repo.anaconda.com/minic ...

  5. 3.介绍ASP.NET Core框架

    介绍ASP.NET Core框架 在这篇文章中,我将要向你们简短介绍一下ASP.NET Core 框架.当今社会,当提到软件开发,每个人都是讨论着开源以及跨平台开发.总所周知,微软是以它的基于Wind ...

  6. 常见Web安全漏洞--------CSRF

    1,CSRF (Cross Site Request Forgery, 跨站域请求伪造),也可以说是模拟请求. 2,黑客获取到了token 令牌,发送恶意模拟请求,攻击网站,防御方法可以参考api 接 ...

  7. Sql Server数据库性能优化之索引

    最近在做SQL Server数据库性能优化,因此复习下一索引.视图.存储过程等知识点.本篇为索引篇,知识整理来源于互联网. 索引加快检索表中数据的方法,它对数据表中一个或者多个列的值进行结构排序,是数 ...

  8. USACO07MAR Face The Right Way G 差分

    题目链接 https://www.luogu.com.cn/problem/P2882 分析 这个题来看的话好像有点难下手,不如再去读一遍题 N遍,发现一句话很重要Each time the mach ...

  9. MATLAB——时间,日期及显示格式

    一.日期和时间 1.生成指定格式日期和时间 标准日期格式 2.获取当前时间的数值 >> datestr(now,) ans = -- :: >> datestr(now,'yy ...

  10. Java多线程工具类之循环栅栏计数器

    Java多线程下循环计数器 本文主要内容:CyclicBarrier(下文中凯哥就用cycBar来代替)定义介绍:举例说明:代码演示:从源码来看原理及总结:CyclicBarrier与CountDow ...