playwright教程 (一)适合小白
一、playwright简介
playwright是微软发布的一款自动化测试工具,可以自动生成代码
在学习playwright前可以了解playwright文档,目前只有英文版!
1.playwright简介
pip install --upgrade pip
pip install playwright
playwright install
2.基本使用
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 = []# 因电影榜单数据都为<tr><td>样式,遍历每一条样式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就是一个<a>标签,利用
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 = 4000worksheet.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的过程,后续会更新通过接口获取,获取不同页面的数据等。。。
playwright教程 (一)适合小白相关推荐
- 小程序开发教程,适合小白哦
近年来,小程序开发的浪潮很流行,小程序的爆炸性增长,无论是各种工具类别的小程序,还是购物中心类别的小程序,都在不断涌现.小程序使我们的生活更加方便,同时为各种在线和线下商店创造了一个良好的营销环境.那 ...
- matlab 积分进阶教程,最适合小白的matlab教程系列_进阶系列二之微积分
微积分篇 更多文章参考 符号变量 极限问题 求导数 求导数----偏导数 积分--符号解 积分数值解 多重积分 级数求和 泰勒级数展开 常微分方程 更多文章参考 最适合小白的matlab教程系列_基础 ...
- 51自学网python初学者教程-超适合小白的python新手教程
python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...
- 从小白到精通python要多久-超适合小白的python新手教程
python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...
- 超适合小白的python新手教程
python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...
- 短视频剪辑的三大要点教程,适合刚入门的小白
短视频剪辑的三大要点教程,适合刚入门的小白 做短视频剪辑,并不仅仅只是将不需要的内容剪辑掉就可以了,我们还需要注意三个要点,比较适合刚刚入门的小白,有兴趣的小伙伴们赶紧收藏起来吧! 要点一:两个统一. ...
- 重装系统教程(适合小白)
文章目录 重装系统教程(适合小白) 一. 安装前准备 二. 开始重装系统 三. 重装系统后的一些后续操作 重装系统教程(适合小白) 一. 安装前准备 A. 下载操作系统 a. 纯净版系统下载地址:ht ...
- python新手使用_超适合小白的python新手教程
python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...
- 最适合小白的matlab教程系列_进阶系列二之微积分
微积分篇 更多文章参考 符号变量 极限问题 求导数 求导数----偏导数 积分--符号解 积分数值解 多重积分 级数求和 泰勒级数展开 常微分方程 更多文章参考 最适合小白的matlab教程系列_基础 ...
- 单机 docker 部署fastfds_云服务器使用docker可视化一键部署Wrodpress个人博客,操作简单,适合小白...
原文链接在我的博客: 教你云服务器使用docker可视化一键部署Wrodpress个人博客,操作简单,适合小白 - Kyellow's blogkyellow.gitee.io 前段时间领取了一台云 ...
最新文章
- Mybatis Interceptor 讲解
- mysql 8.14 rpm安装_centos8 安装 mysql8
- linux: convmv =-======pkgs.org
- 我是如何面试别人List相关知识的
- 以外包角度谈美术制程 Studio Voltz联合创始人开发经验
- hybris backoffice搜索时遇到could not execute full-text query的解决方案
- ASP.NET Core 消息传递:MediatR
- linux下的mysql配置
- android 课堂讨论内容,Android端课堂交互应用研究与实现
- 2018年英语计算机职称考试,2018年高级职称计算机考试内容介绍
- servlet篇 之servlet实现
- 电脑维修之——笔记本电脑将光驱替换为硬盘
- 【若依框架】集成JWT
- 模拟前端ADC芯片LH001-91,用于开发心电、脑电医疗设备
- 智课雅思词汇---二十五、形容词后缀-ate-fic-ose-ulent-olent-ous-ulous-y
- FFmpeg5.0源码阅读之AVClass和AVOption
- 计算机网络期末复习:第一章概念
- python s append_Python语句序列s=[1,2,3,4];s.append([5,6]);print(len(s))的运行结果是______。...
- 软件工程(四)——结构化设计之总体设计
- 背光源中LED的散热问题
热门文章
- 如何利用Kubernetes实现自动弹性伸缩
- 用计算机查看tek示波器波形,用VB编程GPIB通讯控制TEK的TDS3000示波器,怎么把波形图像记录下来?...
- App推送java服务端_小米推送
- gcc自带sanitizer工具使用
- 黑龙江科技大学计算机考研资料汇总
- python 按照对象某一属性排序
- 测试封装的ftp客户端——Cftp类
- 重庆大学计算机学院张玉芳是哪里人,文静(重庆大学计算机学院副教授)_百度百科...
- 4G全网通模块-MSM8953核心板 (Cortex-A53架构)
- 陈小春儿子也写颠倒字?有可能是前庭觉发育迟缓