python+selenium实现网页自动化与爬虫技术
目录:
举例某购物网站,通过selenium与python,实现主页上商品的搜索,并将信息爬虫保存至本地excel表内。
python在官网下载并安装并且设置环境变量。
selenium通过命令行下,pip install selenium进行安装,python与selenium都建议使用3.0版本
这里使用chrome浏览器,下载chrome对应版本的webdrver驱动,将webdriver驱动放在python跟目录下。
chrome浏览器的版本通过这个方法查询:帮助-关于Google Chrome(G)
这里需要用到selenium库、time库(其中sleep用于等待)以及xlwt(用于保存excel表)
1 from selenium import webdriver 2 from time import sleep 3 import xlwt 4 #打开浏览器,这里用的chrome 5 d=webdriver.Chrome() 6 #设置窗口最大化 7 d.maximize_window() 8 #设置隐式等待 9 d.implicitly_wait(30) 10 #打开网页 11 d.get("https://www.jd.com/") 12 #使用元素定位id找到搜索框 13 d.find_element_by_id("key").send_keys("洗发水") 14 #使用xpath定位到搜索按钮 15 d.find_element_by_xpath("/html/body/div[1]/div[4]/div/div[2]/div/div[2]/button").clic
1 #初始化excel表 2 excel=xlwt.Workbook(encoding="utf-8") 3 #增加sheet页 4 sheet=excel.add_sheet("sheet1",cell_overwrite_ok=True) 5 #定义第1行的内容,以及初始化num,用于从第二行开始写入对应的数据 6 sheet.write(0,0,'序号') 7 sheet.write(0,1,'商品') 8 sheet.write(0,2,'价格') 9 num=1 10 #通过元素定位面找到,在页面上找到对应商品的各个元素位置 11 goods=d.find_elements_by_xpath("/html/body/div[6]/div[2]/div[2]/div[1]/div/div[2]/ul/li") 12 sleep(5) 13 for good in goods: 14 #分别找到商品与价格所在的元素,并且取其中的文本信息,并去空行 15 price=good.find_element_by_xpath("div/div[3]/strong").text.replace("\n","-") 16 goodtext=good.find_element_by_xpath("div/div[4]/a/em").text.replace("\n","-") 17 sheet.write(num,0,num) 18 sheet.write(num,1,goodtext) 19 sheet.write(num,2,price) 20 num+=1 21 #print(goodtext,"|",price) 22 #保存至excel表 23 excel.save(r"C:\Users\Mr.White\Desktop\test001\jd.xls") 24 #页面退出 25 d.quit()
1、网页自动化过程中最主要的难度是元素定位,后面会专门去介绍一下元素定位
2、页面可能随着前端代码的变化,会使原本可以跑通的脚本失效,有一定维护成本,如何设计合理的自动化脚本就显得比较重要。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了