使用🎭パイソン:アルペン
4405 ワード
playwright-pythonブラウザの自動化のための本当に素晴らしいライブラリです.
しかし、それはAlpine Linuxで走るのをサポートしません.
https://github.com/microsoft/playwright-python/issues/234
ほとんどのWeb開発者は、アルパインベースのDockerイメージを使用します、そして、実際に、PlayWire Painterは、アルプスでスクリプトを走らせる能力を持ちます.
Playwright Pythonは、ブラウザのダウンローダが付属しています.我々が知っているように、ブラウザは多くの依存関係を必要とします.DEPSはアルパインと互換性がない.
これは、劇作家パイソンがアルプスで走ることを否定する主な理由であるかもしれません.
ところで、我々はすでにセレンリモートドライバ(セレングリッド)を知って、それはスクリプトのランナーとブラウザの環境をHTTPポート(デフォルト:4444)と通信を分離します.
Playwright Pythonは劇作家のPythonクライアントライブラリです.PlayWrightサーバーWebSocketまたは他のプロトコルを介してブラウザと通信し、PlayWight Pythonはデフォルトでパイプ経由でサーバーと通信します.
しかしPlaywright Pythonは既にPlayWright V 1でAPI
私は小さな図書館をつくった.
https://github.com/YusukeIwaki/playwright-python-remote
このライブラリは、PirpeTransportをWebSocketTransportと交換するPlayWriter初期化子(ContextExtManager)を提供します.
https://github.com/YusukeIwaki/playwright-python-remote/blob/main/playwright_remote/sync_api/sync_playwright_remote.py
PlayWrightサーバはDockerでとても簡単に準備できます:
Playwrightパイソンは本当に素晴らしいです、それはアルプスで実際に動きます.
WebSocketTransport(この記事で紹介)は内部クラスで、将来のリリースで変更することができます.
ちょうど機能が公式にサポートされることを期待します.投票しましょう
👍
しかし、それはAlpine Linuxで走るのをサポートしません.
https://github.com/microsoft/playwright-python/issues/234
ほとんどのWeb開発者は、アルパインベースのDockerイメージを使用します、そして、実際に、PlayWire Painterは、アルプスでスクリプトを走らせる能力を持ちます.
PlayWire Pythonがなぜアルプスで走ることができないか?
Playwright Pythonは、ブラウザのダウンローダが付属しています.我々が知っているように、ブラウザは多くの依存関係を必要とします.DEPSはアルパインと互換性がない.
これは、劇作家パイソンがアルプスで走ることを否定する主な理由であるかもしれません.
ところで、我々はすでにセレンリモートドライバ(セレングリッド)を知って、それはスクリプトのランナーとブラウザの環境をHTTPポート(デフォルト:4444)と通信を分離します.
スクリプトランナーとブラウザーを分ける方法
Playwright Pythonは劇作家のPythonクライアントライブラリです.PlayWrightサーバーWebSocketまたは他のプロトコルを介してブラウザと通信し、PlayWight Pythonはデフォルトでパイプ経由でサーバーと通信します.
しかしPlaywright Pythonは既にPlayWright V 1でAPI
BrowserType#connect()
のWebSocketTransportを導入しました.11以降.また、クライアントとサーバー間のplaywright接続に使用することができます.それをお試しください!
私は小さな図書館をつくった.
https://github.com/YusukeIwaki/playwright-python-remote
このライブラリは、PirpeTransportをWebSocketTransportと交換するPlayWriter初期化子(ContextExtManager)を提供します.
https://github.com/YusukeIwaki/playwright-python-remote/blob/main/playwright_remote/sync_api/sync_playwright_remote.py
PlayWrightサーバはDockerでとても簡単に準備できます:
FROM mcr.microsoft.com/playwright:focal
WORKDIR /root
RUN npm install [email protected] && ./node_modules/.bin/playwright install
CMD ["./node_modules/.bin/playwright", "run-server"]
現在、我々はアルプスの上でPlaywrightパイソンを楽しむことができます:from playwright_remote.sync_api import sync_playwright_remote
with sync_playwright_remote('ws://127.0.0.1:8080/ws') as playwright:
browser = playwright.chromium.launch()
try:
page = browser.new_page()
page.goto('https://github.com/YusukeIwaki')
page.screenshot(path='YusukeIwaki.png')
finally:
browser.close()
私もherokuにそれを試みましたhttps://zenn.dev/yusukeiwaki/scraps/3ad5f8ed536720 結論
Playwrightパイソンは本当に素晴らしいです、それはアルプスで実際に動きます.
WebSocketTransport(この記事で紹介)は内部クラスで、将来のリリースで変更することができます.
ちょうど機能が公式にサポートされることを期待します.投票しましょう
👍
Reference
この問題について(使用🎭パイソン:アルペン), 我々は、より多くの情報をここで見つけました https://dev.to/yusukeiwaki/using-playwright-in-python-alpine-53o1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol