Предупреждение драматурга, вызывающее зависание кода
Я пишу сценарий, для которого требуется автоматический браузер для навигации по некоторым страницам. Я изначально использовал
selenium
, но я решил попробовать перейти на. Я побежал
$ pip install playwright
и
$ playwright install
установить
playwright
и установить двоичные файлы браузера, и кажется, что все было установлено правильно.
Однако, когда я запускаю тесты из командной строки, которые я написал для
SplitsLeaderboards
(см. ниже) Командная строка зависает. Я получаю предупреждающее сообщение (также ниже), которое останавливает код, но не завершает код (я также не могу нажать Ctrl-C, чтобы остановить его). То же самое касается импорта модуля и вызова класса из другого скрипта Python - я вызываю
module.SplitsLeaderboards()
, то интерпретатор Python зависает. Я проверил, что каждая строка в
__init__()
работает правильно, и это так. Я запускал каждую строку индивидуально и не получал ошибок.
Я не знаю, что означают предупреждающие сообщения, и не знаю, как их исправить. Любая помощь горячо приветствуется.
Код
import bs4
from playwright.sync_api import sync_playwright
class SplitsLeaderboards:
address = "https://fangraphs.com/leaders/splits-leaderboards"
play = sync_playwright().start()
def __init__(self):
self.browser = self.play.chromium.launch()
self.page = self.browser.new_page()
self.page.goto(self.address, timeout=0)
self.soup = bs4.BeautifulSoup(
self.page.content(), features="lxml"
)
def quit(self):
self.browser.close()
self.play.stop()
Предупреждение
(node:23132) UnhandledPromiseRejectionWarning: Error: EPIPE: broken pipe, write
at Socket._write (internal/net.js:54:25)
at doWrite (_stream_writable.js:403:12)
at writeOrBuffer (_stream_writable.js:387:5)
at Socket.Writable.write (_stream_writable.js:318:11)
at Transport.send (C:\Users\JLpyt\PythonScripts\FanGraphs-Export\virtualenv\Lib\site-packages\playwright\driver\package\lib\protocol\transport.js:47:25)
at DispatcherConnection.dispatcherConnection.onmessage (C:\Users\JLpyt\PythonScripts\FanGraphs-Export\virtualenv\Lib\site-packages\playwright\driver\package\lib\cli\driver.js:63:59)
at DispatcherConnection.sendMessageToClient (C:\Users\JLpyt\PythonScripts\FanGraphs-Export\virtualenv\Lib\site-packages\playwright\driver\package\lib\dispatchers\dispatcher.js:136:14)
at FrameDispatcher._dispatchEvent (C:\Users\JLpyt\PythonScripts\FanGraphs-Export\virtualenv\Lib\site-packages\playwright\driver\package\lib\dispatchers\dispatcher.js:72:26)
at Frame.<anonymous> (C:\Users\JLpyt\PythonScripts\FanGraphs-Export\virtualenv\Lib\site-packages\playwright\driver\package\lib\dispatchers\frameDispatcher.js:37:18)
at Frame.emit (events.js:314:20)
(node:23132) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a p
romise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.
html#cli_unhandled_rejections_mode). (rejection id: 20)