我试图在google上运行剧作家,但是得到了一个错误
已安装的剧作家和铬
!pip install playwright
!playwright install在笔记本中运行异步操作
import nest_asyncio
nest_asyncio.apply()我的密码
import time
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page(storage_state='auth.json')
await page.goto('https://www.google.com')
time.sleep(6)
html = await page.content()
time.sleep(5)
# await browser.close()
asyncio.run(main())这给我带来了以下错误
/usr/lib/python3.7/asyncio/futures.py in result(self)
179 self.__log_traceback = False
180 if self._exception is not None:
--> 181 raise self._exception
182 return self._result
183
Error: Browser closed.
==================== Browser output: ====================
<launching> /root/.cache/ms-playwright/chromium-1015/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-IAbW15 --remote-debugging-pipe --no-startup-window
<launched> pid=656
[pid=656][err] src/tcmalloc.cc:283] Attempt to free invalid pointer 0x29000020c5a0
=========================== logs ===========================
<launching> /root/.cache/ms-playwright/chromium-1015/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --no-sandbox --user-data-dir=/tmp/playwright_chromiumdev_profile-IAbW15 --remote-debugging-pipe --no-startup-window
<launched> pid=656
[pid=656][err] src/tcmalloc.cc:283] Attempt to free invalid pointer 0x29000020c5a0 发布于 2022-11-21 11:51:50
当我尝试使用以下命令运行剧作家下载的铬浏览器时
!/root/.cache/ms-playwright/chromium-1033/chrome-linux/chrome它给出了这个错误
src/tcmalloc.cc:283] Attempt to free invalid pointer 0x18400020c5a0这意味着这个问题与剧作家下载的浏览器有关。我们可以使用不同的浏览器。
首先,安装铬。
!apt install chromium-chromedriver在代码中使用executable_path和user_data_dir设置launch_persistent_context。
import nest_asyncio
nest_asyncio.apply()
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch_persistent_context(
executable_path="/usr/bin/chromium-browser",
user_data_dir="/content/random-user"
)
page = await browser.new_page()
await page.goto("https://google.com")
title = await page.title()
print(f"Title: {title}")
await browser.close()
asyncio.run(main())我知道这不是正确的解决办法,但有效。
https://stackoverflow.com/questions/73084960
复制相似问题