fix(crawler): remove automatic page closure in screenshot methods

Removes automatic page closure in take_screenshot and take_screenshot_naive methods
to prevent premature closure of pages that might still be needed in the calling context.
This allows for more flexible page lifecycle management by the caller.

BREAKING CHANGE: Page objects are no longer automatically closed after taking screenshots.
Callers must explicitly handle page closure when appropriate.
This commit is contained in:
UncleCode
2025-05-12 21:17:57 +08:00
parent 76dd86d1b3
commit a3e9ef91ad
2 changed files with 5 additions and 5 deletions

View File

@@ -1,3 +1,3 @@
# crawl4ai/_version.py # crawl4ai/_version.py
__version__ = "0.6.3" __version__ = "0.6.4"

View File

@@ -1467,8 +1467,8 @@ class AsyncPlaywrightCrawlerStrategy(AsyncCrawlerStrategy):
buffered = BytesIO() buffered = BytesIO()
img.save(buffered, format="JPEG") img.save(buffered, format="JPEG")
return base64.b64encode(buffered.getvalue()).decode("utf-8") return base64.b64encode(buffered.getvalue()).decode("utf-8")
finally: # finally:
await page.close() # await page.close()
async def take_screenshot_naive(self, page: Page) -> str: async def take_screenshot_naive(self, page: Page) -> str:
""" """
@@ -1501,8 +1501,8 @@ class AsyncPlaywrightCrawlerStrategy(AsyncCrawlerStrategy):
buffered = BytesIO() buffered = BytesIO()
img.save(buffered, format="JPEG") img.save(buffered, format="JPEG")
return base64.b64encode(buffered.getvalue()).decode("utf-8") return base64.b64encode(buffered.getvalue()).decode("utf-8")
finally: # finally:
await page.close() # await page.close()
async def export_storage_state(self, path: str = None) -> dict: async def export_storage_state(self, path: str = None) -> dict:
""" """