Skip to content

JavaScript Rendering

Use the built-in Chrome DevTools Protocol to render JavaScript-heavy pages without external services.

name = "JS Rendering Example"
url = "https://news.ycombinator.com"
selector = ".athing"
fields = [
"title:.titleline > a",
"link:.titleline > a@href"
]
interval = 300
  • cdp.launch() starts a persistent Chromium browser
  • defer() ensures the page closes even if the hook errors
  • wait_for_selector() blocks until the element appears or timeout
  • Global browser persists across runs for faster subsequent fetches