playwright_获取网页的html或元素的html
爬虫是很多小伙伴喜欢做的事情,爬虫时需要获取到整个页面的html,playwright也提供了获取整个页面的html的功能,使用page.content()就可以实现。另外,playwright还可以获取某个元素对应的html,使用page.inner_html()可以获取。
实践代码:
'''
# author: 测试-老姜 交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
'''
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False,slow_mo=2000)
context = browser.new_context(record_video_dir="videos") #设置录屏保存目录
page = context.new_page()
page.goto("http://127.0.0.1/zentao/user-login.html") # 使用相对地址
page.locator("#account").fill("admin")
page.locator("input[name=\"password\"]").click()
page.locator("input[name=\"password\"]").fill("Deshifuzhi01")
page.locator('text="登录"').click()
r = page.content() # 获取整个页面的html
print(r)
loc = page.frame_locator('#appIframe-my').locator('#main')
r = loc.inner_html() # 获取id=main的元素的html
print(r)
page.wait_for_timeout(10000)
# ---------------------
context.close() # 上下文关闭时保存录屏
browser.close()
with sync_playwright() as playwright:
run(playwright)
学会这两个方法的使用后,小伙伴就可以愉快的爬虫了。