IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> playwright自动测试库的爬虫使用 -> 正文阅读

[Python知识库]playwright自动测试库的爬虫使用

在尝试使用playwright之前,也使用过Selenium,Selenium依赖多种不同的driver,根据浏览器的不断更新,就要不断去维护这些driver,以及处理相应的适用性问题,对于整体的产品来看,显得太重,playwright的这方面封装会更加轻量级,所以尝试了把playwright的使用

使用之前,首先在已新建的虚拟环境下,可以:

pip install playwright
//2.安装相应的封装好的驱动
playwight install

第二步可能网络不好时会下载失败,多尝试,下载后安装在用户的一个隐藏目录下(具体位置忘了)

下面我们对一个网站进行爬虫,并且模拟登录。

from playwright.sync_api import sync_playwright


def main():
    with sync_playwright() as p:
        browser = p.firefox.launch(headless=False)
        context = browser.new_context()
        # Open new page
        page = context.new_page()
        # Go to http://quotes.toscrape.com/
        page.goto("http://quotes.toscrape.com/")
        page.wait_for_timeout(5000)
        # 利用xpath查找指定的标签文字
        selector = "//div[@class='tags']/a[@class='tag']"
        tag = page.query_selector_all(selector)
        # tag实际上是一个list,包含各种对象,利用对象的inner_text方法可以提取文字,并不需要正则
        content= [t.inner_text() for t in tag]
        print(content)
        # Click text=Login
        page.click("text=Login")
        # assert page.url == "http://quotes.toscrape.com/login"
        # Click input[name="username"]
        page.click("input[name=\"username\"]")
        # Click input[name="username"]
        # Fill input[name="username"]
        page.fill("input[name=\"username\"]", "123")
        # Click input[name="password"]
        page.click("input[name=\"password\"]")
        # Fill input[name="password"]
        page.fill("input[name=\"password\"]", "123")
        #  click input:has-text("Login")
        page.click("input:has-text(\"Login\")")
        # assert page.url == "http://quotes.toscrape.com/"
        # check
        #太快可能看不清是否有点击logout,定义个睡眠时间
        page.wait_for_timeout(1000)
        selector = '//*[@href="/logout"]'
        try:
            logout = page.wait_for_selector(selector, timeout=5000)
            print(logout.inner_text())
        except Exception as e:
            print(e)
            exit()

        # ---------------------
        context.close()
        browser.close()


if __name__ == '__main__':
    main()

这里面的代码有部分是根据脚本录制生成的,playwright的录制功能稳定性较强,但有时如果想等待新页面生成后再去操作,就需要用到wait_for_selector的方法,这个selector一般的xpath,正则,css选择器都可以输入进去,这里运用的是xpath,值得注意的是,当我们获取了div元素里的标签后,实际上在playwright里是一个对象,是需要用到inner_text()的方法提取对象的属性。

result:
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 10:59:51  更:2022-02-04 11:00:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:40:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码