68 lines
1.8 KiB
Python
Executable File
68 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Browser automation example using Playwright
|
|
"""
|
|
|
|
from playwright.sync_api import sync_playwright
|
|
import time
|
|
|
|
def open_url_and_screenshot(url, save_path="screenshot.png"):
|
|
"""Open URL and take a screenshot"""
|
|
with sync_playwright() as p:
|
|
browser = p.chromium.launch(headless=True)
|
|
page = browser.new_page()
|
|
|
|
print(f"Opening: {url}")
|
|
page.goto(url)
|
|
|
|
# Wait for page to load
|
|
time.sleep(2)
|
|
|
|
# Take screenshot
|
|
page.screenshot(path=save_path)
|
|
print(f"Screenshot saved: {save_path}")
|
|
|
|
# Get page title
|
|
title = page.title()
|
|
print(f"Page title: {title}")
|
|
|
|
browser.close()
|
|
return title
|
|
|
|
def search_baidu(query):
|
|
"""Search on Baidu"""
|
|
with sync_playwright() as p:
|
|
browser = p.chromium.launch(headless=True)
|
|
page = browser.new_page()
|
|
|
|
print(f"Searching: {query}")
|
|
page.goto("https://www.baidu.com")
|
|
|
|
# Fill search box
|
|
page.fill("#kw", query)
|
|
page.click("#su")
|
|
|
|
# Wait for results
|
|
time.sleep(2)
|
|
|
|
# Get results
|
|
title = page.title()
|
|
print(f"Results page title: {title}")
|
|
|
|
browser.close()
|
|
return title
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
|
|
if len(sys.argv) > 1:
|
|
if sys.argv[1] == "search":
|
|
# Usage: python browser_example.py search "your query"
|
|
query = " ".join(sys.argv[2:]) if len(sys.argv) > 2 else "OpenClaw"
|
|
search_baidu(query)
|
|
else:
|
|
open_url_and_screenshot(sys.argv[1])
|
|
else:
|
|
# Default: open OpenClaw docs
|
|
open_url_and_screenshot("https://docs.openclaw.ai", "openclaw_docs.png")
|