首页 > 编程语言 >python+playwright 学习-35.获取页面的完整 HTML 内容

python+playwright 学习-35.获取页面的完整 HTML 内容

时间:2023-04-19 22:38:26浏览次数:31  
标签:content playwright python text 35 blog inner print page

前言

selenium 里面有个driver.page_source 可以获取整个html页面的内容,playwright里面也有类似的方法 使用 page.content()

page.content() 获取html内容

使用示例

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    page.goto("https://www.cnblogs.com/yoyoketang/")
    print(page.content())

python+playwright 学习-35.获取页面的完整 HTML 内容_html

对于喜欢爬虫的小伙伴就可以去抓取页面上的内容了。

inner_html() 与 inner_text()

page.content() 是获取整个页面的HTML,如果我们只需获取某个元素的HTML,如下图

python+playwright 学习-35.获取页面的完整 HTML 内容_html页面_02

可以使用locator().inner_html() 方法获取

  • inner_html() 获取元素的整个html源码内容
  • inner_text() 获取元素的文本内容
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    page.goto("https://www.cnblogs.com/yoyoketang/")
    # print(page.content())
    # 获取某个元素的HTML
    blog = page.locator('#blogTitle')
    print(blog.inner_html())
    print('-------------上海-悠悠----------------------')
    print(blog.inner_text())

python+playwright 学习-35.获取页面的完整 HTML 内容_HTML_03

text_content() 与 inner_text() 获取页面文本

text_content() 用来获取某个元素内所有文本内容,包含子元素内容,隐藏元素也能获取。
inner_text() 的返回值会被格式化 ,但是text_content()的返回值不会被格式化
最重要的区别 inner_text()返回的值, 依赖于页面的显示, text_content()依赖于代码的内容

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    page.goto("https://www.cnblogs.com/yoyoketang/")
    # print(page.content())
    # 获取某个元素的HTML
    blog = page.locator('#blogTitle')
    # print(blog.inner_html())
    # print('-------------上海-悠悠----------------------')
    # print(blog.inner_text())
    print(blog.text_content())

python+playwright 学习-35.获取页面的完整 HTML 内容_html_04

all_inner_texts() 与 all_text_contents()

all_inner_texts() 和 all_text_contents() 也是用于获取页面上的文本,但是返回的是list列表

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    page.goto("https://www.cnblogs.com/yoyoketang/")
    # print(page.content())
    # 获取某个元素的HTML
    blog = page.locator('#blogTitle')
    # print(blog.inner_html())
    # print('-------------上海-悠悠----------------------')
    # print(blog.inner_text())
    # print(blog.text_content())

    print(blog.all_inner_texts())
    print('-------------上海-悠悠----------------------')
    print(blog.all_text_contents())

python+playwright 学习-35.获取页面的完整 HTML 内容_html页面_05



标签:content,playwright,python,text,35,blog,inner,print,page
From: https://blog.51cto.com/u_15249893/6207513

相关文章

  • python_07
    #coding=utf-8'''python中的类和对象:类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。实例化:创建一个类的实例,类的具体对象。对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和......
  • python编写CDN刷新脚本
    脚本刷新根目录[root@jenkinscdn]#catdns_flush.py#!/usr/bin/python3fromaliyunsdkcore.clientimportAcsClientfromaliyunsdkcdn.request.v20180510.RefreshObjectCachesRequestimportRefreshObjectCachesRequestimportsysiflen(sys.argv)<2:print(�......
  • python+playwright 学习-49 pytest-xdist 多进程执行用例
    前言在实际工作中项目下的web自动化用例非常多,单进程执行会消耗很长的运行时间,可能运行一次用例得几个小时。为了加快用例的运行速度,可以使用pytest-xdist多进程执行用例。但并不是说你写的用例,直接安装插件就能使用,实际使用的过程中还会遇到很多的问题。pytest-xdist多进程执行......
  • python-悲观锁和乐观锁
    乐观锁和悲观锁它们都是一种思想,都是人们定义出来的概念,和语言无关并发控制:当程序出现并发的问题时,我们需要保证在并发情况下数据的准确性,以保证当前用户在和其他用户一起操作时,得到的结果和他单独操作时得到的结果是一样的,没有做好并发控制,就可能导致脏读、幻读、不可重复读等问......
  • 35. 搜索插入位置(leetcode)
    https://leetcode.cn/problems/search-insert-position/简单二分,这里可以判断return,相当于剪枝这里的写法最后更新后的l或r一定可以使得nums[l]或者nums[r]>=target所以退出循环最后的l或r就是第一个大于等于target的下标classSolution{public:intsearchInsert(vect......
  • 【中介者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介中介者模式(MediatorPattern)是一种行为型模式。它限制对象之间的直接交互,它用一个中介对象来封装一系列的动作,以让对象之间进行交流。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。当一些对象和其他对象紧密耦合以致难以对其进......
  • 简单的python3脚本:从日志中提取信息
    命名:log_extractor.pyordownload_stats_extractor.py#coding:utf-8#!/usr/bin/python3deffilter_line(line,contains,contains_not):ifall(cinlineforcincontains)andnotany(ninlinefornincontains_not):ifint(line.split()[8])==2......
  • python-SSTI模板注入
    一、python_SSTI模板注入介绍ssti漏洞成因ssti服务端模板注入,ssti主要为python的一些框架jinja2makotornadodjango,PHP框架smartytwig,java框架jadevelocity等等使用了渲染函数时,由于代码不规范或信任了用户输入而导致了服务端模板注入,模板渲染其实并没有漏洞,主要是程序员......
  • 关于python中的class类犯得迷之错误
    昨天在写一个类,修了20几天假,忘了类的写法,刚开始我写成这样classA():def_init_():......然后我想把外面的一个方法c传进A类的方法b中,进行调用,就开始报错:object()takesnoparameters,刚开始很自信,不可能是自己写错,结果啪啪打脸,正确的类的写法是这样的......
  • python反序列化
    这篇文章介绍python反序列化。0X00前言本篇文章搬运大佬k0rz3n的研究文章,写的特别好,存下来学习一下。0X01Python的序列化和反序列化是什么Python的序列化和反序列化是将一个类对象向字节流转化从而进行存储和传输,然后使用的时候再将字节流转化回原始的对象的一个过程。1.......