Skip to main content

Helpers for using Playwright from notebooks and more

Project description

PlaywrightNB

PlaywrightNB provides some little quality-of-life helpers for interactive use of the wonderful Playwright library. It’s likely to be particularly of interest to folks using Jupyter.

Install

pip install playwrightnb

Overview

from playwrightnb import *
from html.parser import HTMLParser

playwrightnb provide two main functions: read_page_async(url), and read_page(url). They are identical except the 1st is async.

They return a tuple of the main HTML page contents, and a dict mapping iframe IDs to their HTML contents. They handle Javascript and other trickiness largely automatically, however you can pass a pause parameter (in milliseconds) if you need to insert some manual waits. You can also pass a timeout (also in milliseconds).

For instance, the Dyalog APL help information is provided inside an iframe that’s dynamically loaded by JS, but we are able to read it directly:

sh_url = 'https://help.dyalog.com/19.0/#UserGuide/Installation%20and%20Configuration/Shell%20Scripts.htm'
cts,iframes = read_page(sh_url)

Use h2md to convert the HTML to markdown:

print(h2md(iframes['topic'])[94:250])
## Shell Scripts

Shell scripts are typically executed from a terminal (or shell).

A script is executed by typing its name. User input is entered from the 

In the case where you want to grab some particular element using a CSS selector, use url2md to read the page, find the selector, and convert to markdown. E.g, for accessing Discord’s JS-rendered docs:

url = 'https://discord.com/developers/docs/interactions/application-commands'
sel = '.page-content-scrolling-container'
md = url2md(url, sel)
print(md[856:1215])
Application commands are native ways to interact with apps in the Discord client. There are 3 types of commands accessible in different interfaces: the chat input, a message's context menu (top-right menu or right-clicking in a message), and a user's context menu (right-clicking on a user).

## Application Command Object

###### Application Command Naming

If you don’t need JS-rendering or other fanciness, use get2md instead, which uses httpx.get instead of playwright.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

playwrightnb-0.2.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

playwrightnb-0.2.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file playwrightnb-0.2.2.tar.gz.

File metadata

  • Download URL: playwrightnb-0.2.2.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for playwrightnb-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d296ad94b0a7477d06fdcedb111fe5242dd9ff7363a289b7c0ca454464c28ec5
MD5 b0fd300fa97566bbfa85a197cadca72d
BLAKE2b-256 52522a2f8603afc4c3f19b808b9981a4c5ef7097d0af4a3611b72d304fd93271

See more details on using hashes here.

File details

Details for the file playwrightnb-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for playwrightnb-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3dd67c281134d0ae775d6279921043693ad9af6244246b3126fa7f9494bc2ea6
MD5 620288ded2bc8cebfda0b7993313d066
BLAKE2b-256 3c237df9e7187d4699a8a3621019876b8e0f991f616b92da8a0bad7693e36120

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page