一、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教程 (一)适合小白相关推荐

  1. 小程序开发教程,适合小白哦

    近年来,小程序开发的浪潮很流行,小程序的爆炸性增长,无论是各种工具类别的小程序,还是购物中心类别的小程序,都在不断涌现.小程序使我们的生活更加方便,同时为各种在线和线下商店创造了一个良好的营销环境.那 ...

  2. matlab 积分进阶教程,最适合小白的matlab教程系列_进阶系列二之微积分

    微积分篇 更多文章参考 符号变量 极限问题 求导数 求导数----偏导数 积分--符号解 积分数值解 多重积分 级数求和 泰勒级数展开 常微分方程 更多文章参考 最适合小白的matlab教程系列_基础 ...

  3. 51自学网python初学者教程-超适合小白的python新手教程

    python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...

  4. 从小白到精通python要多久-超适合小白的python新手教程

    python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...

  5. 超适合小白的python新手教程

    python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...

  6. 短视频剪辑的三大要点教程,适合刚入门的小白

    短视频剪辑的三大要点教程,适合刚入门的小白 做短视频剪辑,并不仅仅只是将不需要的内容剪辑掉就可以了,我们还需要注意三个要点,比较适合刚刚入门的小白,有兴趣的小伙伴们赶紧收藏起来吧! 要点一:两个统一. ...

  7. 重装系统教程(适合小白)

    文章目录 重装系统教程(适合小白) 一. 安装前准备 二. 开始重装系统 三. 重装系统后的一些后续操作 重装系统教程(适合小白) 一. 安装前准备 A. 下载操作系统 a. 纯净版系统下载地址:ht ...

  8. python新手使用_超适合小白的python新手教程

    python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已 ...

  9. 最适合小白的matlab教程系列_进阶系列二之微积分

    微积分篇 更多文章参考 符号变量 极限问题 求导数 求导数----偏导数 积分--符号解 积分数值解 多重积分 级数求和 泰勒级数展开 常微分方程 更多文章参考 最适合小白的matlab教程系列_基础 ...

  10. 单机 docker 部署fastfds_云服务器使用docker可视化一键部署Wrodpress个人博客,操作简单,适合小白...

    原文链接在我的博客: 教你云服务器使用docker可视化一键部署Wrodpress个人博客,操作简单,适合小白 - Kyellow's blog​kyellow.gitee.io 前段时间领取了一台云 ...

最新文章

  1. Mybatis Interceptor 讲解
  2. mysql 8.14 rpm安装_centos8 安装 mysql8
  3. linux: convmv =-======pkgs.org
  4. 我是如何面试别人List相关知识的
  5. 以外包角度谈美术制程 Studio Voltz联合创始人开发经验
  6. hybris backoffice搜索时遇到could not execute full-text query的解决方案
  7. ASP.NET Core 消息传递:MediatR
  8. linux下的mysql配置
  9. android 课堂讨论内容,Android端课堂交互应用研究与实现
  10. 2018年英语计算机职称考试,2018年高级职称计算机考试内容介绍
  11. servlet篇 之servlet实现
  12. 电脑维修之——笔记本电脑将光驱替换为硬盘
  13. 【若依框架】集成JWT
  14. 模拟前端ADC芯片LH001-91,用于开发心电、脑电医疗设备
  15. 智课雅思词汇---二十五、形容词后缀-ate-fic-ose-ulent-olent-ous-ulous-y
  16. FFmpeg5.0源码阅读之AVClass和AVOption
  17. 计算机网络期末复习:第一章概念
  18. python s append_Python语句序列s=[1,2,3,4];s.append([5,6]);print(len(s))的运行结果是______。...
  19. 软件工程(四)——结构化设计之总体设计
  20. 背光源中LED的散热问题

热门文章

  1. 如何利用Kubernetes实现自动弹性伸缩
  2. 用计算机查看tek示波器波形,用VB编程GPIB通讯控制TEK的TDS3000示波器,怎么把波形图像记录下来?...
  3. App推送java服务端_小米推送
  4. gcc自带sanitizer工具使用
  5. 黑龙江科技大学计算机考研资料汇总
  6. python 按照对象某一属性排序
  7. 测试封装的ftp客户端——Cftp类
  8. 重庆大学计算机学院张玉芳是哪里人,文静(重庆大学计算机学院副教授)_百度百科...
  9. 4G全网通模块-MSM8953核心板 (Cortex-A53架构)
  10. 陈小春儿子也写颠倒字?有可能是前庭觉发育迟缓