Commit graph

3 commits

Author SHA1 Message Date
Paul Gauthier
09de0f5d43 aider: Add check to see if Playwright needs to install Chromium and its dependencies.
# Aider chat conversation:

USER: include a check to see if playwright needs to install chromium and it's deps

ASSISTANT: Here is the updated `playw.py` file with the check to see if Playwright needs to install Chromium and its dependencies:

```diff
--- playw.py
+++ playw.py
@@ ... @@
 import sys
+from playwright.__main__ import main as playwright_install

 def main(url):
+    # Check if Chromium is installed, if not, install it
+    try:
+        with sync_playwright() as p:
+            p.chromium.launch()
+    except Exception as e:
+        print("Chromium is not installed. Installing necessary dependencies...")
+        playwright_install(['install', 'chromium'])
+
     with sync_playwright() as p:
         browser = p.chromium.launch()
         page = browser.new_page()
         page.goto(url)
         content = page.content()
         print(content)
         browser.close()

 if __name__ == "__main__":
     if len(sys.argv) < 2:
         print("Usage: python playw.py <URL>")
         sys.exit(1)
     main(sys.argv[1])
```

This diff adds a check before the main function to see if Chromium can be launched. If an exception occurs, it assumes Chromium is not installed and proceeds to install it using Playwright's command-line interface.
2024-02-08 07:24:46 -08:00
Paul Gauthier
d1782d1c87 aider: Remove asynchronous code and use synchronous Playwright API.
# Aider chat conversation:

USER: don't use async

ASSISTANT: Here is the updated `playw.py` file without using async:

```diff
--- playw.py
+++ playw.py
@@ ... @@
-import asyncio
-from playwright.async_api import async_playwright
+from playwright.sync_api import sync_playwright
 import sys

-async def main(url):
-    async with async_playwright() as p:
-        browser = await p.chromium.launch()
-        page = await browser.new_page()
-        await page.goto(url)
-        content = await page.content()
-        print(content)
-        await browser.close()
+def main(url):
+    with sync_playwright() as p:
+        browser = p.chromium.launch()
+        page = browser.new_page()
+        page.goto(url)
+        content = page.content()
+        print(content)
+        browser.close()

 if __name__ == "__main__":
     if len(sys.argv) < 2:
         print("Usage: python playw.py <URL>")
         sys.exit(1)
-    asyncio.run(main(sys.argv[1]))
+    main(sys.argv[1])
```

This diff removes the asynchronous code and replaces it with the synchronous version provided by Playwright's `sync_api`. The `async` and `await` keywords are removed, and the `async_playwright` context manager is replaced with `sync_playwright`. The script should now run synchronously.
2024-02-08 07:21:23 -08:00
Paul Gauthier
a2649cabe9 aider: Added Playwright script to fetch text from a supplied URL.
# Aider chat conversation:

USER: write a playwright script to fetch the text from a url supplied on the cmd line

ASSISTANT: To create a Playwright script that fetches text from a URL supplied on the command line, I will write the necessary code in the `playw.py` file. The script will use Playwright's Python package to launch a browser, navigate to the provided URL, and print the text content of the page to the console.

Here is the diff for the new `playw.py` file:

```diff
--- /dev/null
+++ playw.py
@@ ... @@
+import asyncio
+from playwright.async_api import async_playwright
+import sys
+
+async def main(url):
+    async with async_playwright() as p:
+        browser = await p.chromium.launch()
+        page = await browser.new_page()
+        await page.goto(url)
+        content = await page.content()
+        print(content)
+        await browser.close()
+
+if __name__ == "__main__":
+    if len(sys.argv) < 2:
+        print("Usage: python playw.py <URL>")
+        sys.exit(1)
+    asyncio.run(main(sys.argv[1]))
```

This script will require the Playwright package to be installed. You can install it using `pip install playwright` and then run `playwright install` to install the necessary browser binaries. To run the script, use the command `python playw.py <URL>`, replacing `<URL>` with the actual URL you want to fetch text from.
2024-02-08 07:20:50 -08:00