playwright是微软发布的一款自动化测试工具,可以自动生成代码
在学习playwright前可以了解playwright文档,目前只有英文版!
1.playwright简介pip install --upgrade pip pip install playwright playwright install2.基本使用
import xlwt
# 导入sync_playwright方法
from playwright.sync_api import sync_playwright
# 定义run()方法
def run(playwright):
# 调用playwright的chromium创建浏览器实例,脚本运行需要首先打开浏览器实例
# 如果不设置为 False,默认是无头模式启动浏览器,我们看不到任何窗口
browser = playwright.chromium.launch(headless=False)
# 创建context对象,context运行资源是单独隔离的,可以理解为轻量级的浏览器实例
context = browser.new_context()
# 返回page对象,新建页面
page = context.new_page()
# 加载豆瓣网页面
page.goto("https://movie.douban.com/")
3.独特功能,自动生成(一段即可)
playwright codegen -o baidu.py
-o 后面是代码自动生成后保存的文件名
二、练习豆瓣电影TOP10,并生成Excel表格 1.了解选择器在playwright中选择器可以使用CSS选择器,xpath选择器,后者也可应用于其他python库
xpath教程可参考菜鸟(东西不多,一些规则,一看就懂)
# 使用CSS选择器选定电影榜单位置
names = page.query_selector_all("#billboard > div.billboard-bd > table > tbody > tr > td > a")
# 使用xpath选择器获取
# names = page.query_selector_all("//*[@id='billboard']/div[2]/table/tbody/tr/td/a")
两个选择器本质是一样的,xpath选择器可以更直观
2.利用选择器在F12开发者根据中找到所需数据位置选择器选择所需元素范围不要太大(太大的话也可以获取,但就比较麻烦,像获取TOP10数据这种,有规律的,可以选择每个小标签就可以),如上图a标签.,10个a标签,正好对应10条数据。
# 新建列表 用于存储电影名字和链接
listName = []
# 因电影榜单数据都为样式,遍历每一条样式
for name in names :
# 获取a节点中的电影名字
content = name.text_content()
# 获取a节点中的电影链接
link = name.get_attribute("href")
# 将每行字符串追加到列表中
listName.append((content,link))
print(content,link)
print(listName)
接着遍历这10条数据,每一条name就是一个标签,利用
name.text_content() 拿到标签的文本
name.get_attribute("href")拿到标签中href属性的值
可以打印出来试试看,我就不示范了
3.保存到Excel中
再保存前考虑,创建excel,表名,表头,单元格大小
# 创建wordbook对象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 创建工作表
worksheet = workbook.add_sheet('豆瓣电影TOP10')
# 设置工作表的表头,write(行,列,值)
worksheet.write(0, 0, label="豆瓣电影TOP10")
worksheet.write(2, 0, label="名称")
worksheet.write(2, 1, label="链接")
# 设置单元格宽度
worksheet.col(0).width = 4000
worksheet.col(1).width = 10000
将上述的listName遍历,这里采用enumerate方法,可以遍历出索引和数据,通过索引控制excel中的行和列更方便
for i,items in enumerate(listName):
# print(i,items)
# 将获取到的items写入excel中 write(行,列,值)
worksheet.write(i+3, 0, items[0])
worksheet.write(i+3, 1, items[1])
# 保存工作表
workbook.save('Excel_test.xls')
关闭浏览器,页面,
page.close()
context.close()
browser.close()
#调用sync_playwright方法,返回浏览器上下文管理器,赋值为p
with sync_playwright() as playwright:
run(playwright)
三、总结
这里使用的是模拟浏览器获取,代码还是比较初级,主要体验将获取的数据存储excel的过程,后续会更新通过接口获取,获取不同页面的数据等。。。
Java相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索
路由器设置
木托盘
宝塔面板
儿童python教程
心情低落
朋友圈
vim
双一流学科
专升本
我的学校
日记学校
西点培训学校
汽修学校
情书
化妆学校
塔沟武校
异形模板
西南大学排名
最精辟人生短句
6步教你追回被骗的钱
南昌大学排名
清朝十二帝
北京印刷学院排名
北方工业大学排名
北京航空航天大学排名
首都经济贸易大学排名
中国传媒大学排名
首都师范大学排名
中国地质大学(北京)排名
北京信息科技大学排名
中央民族大学排名
北京舞蹈学院排名
北京电影学院排名
中国戏曲学院排名
河北政法职业学院排名
河北经贸大学排名
天津中德应用技术大学排名
天津医学高等专科学校排名
天津美术学院排名
天津音乐学院排名
天津工业大学排名
北京工业大学耿丹学院排名
北京警察学院排名
天津科技大学排名
北京邮电大学(宏福校区)排名
北京网络职业学院排名
北京大学医学部排名
河北科技大学排名
河北地质大学排名
河北体育学院排名



