为什么我的 Playwright 网页抓取应用程序部署在渲染上时会超时,但部署在本地时不会超时?

问题描述 投票:0回答:1

我有一个相对简单的网络抓取应用程序,主要使用 Beautiful Soup,但对于动态加载的网站,我一直在使用 Playwright,并且喜欢它......当它工作时。

我已经使用 docker 对我的应用程序进行了容器化,并且该容器也在本地运行,包括两条剧作家路线。但即使我将超时设置为 60000 毫秒,在渲染上部署时仍然没有运气。

TLDR:无法逃避我的剧作家路线上的超时错误。

这是我的渲染日志中的主要错误:

playwright._impl._errors.TimeoutError: Timeout 60000ms exceeded.

这是部署时超时的 Flask 路由之一的开始:

 def eulogy():
     url = 'https://burialbeer.com/pages/eulogy'
     with sync_playwright() as p:
         browser = p.chromium.launch(headless=True)
         context = browser.new_context(user_agent=headers['User-Agent'])
         page = context.new_page() 
         page.goto(url, timeout=60000).  #TIME OUT OCCURS RIGHT HERE
         ageVerificationBtn = 'button[name="confirm-age"]'...

.```
docker flask web-scraping deployment playwright
1个回答
0
投票

对我来说这很有效:

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True,
                args=[
                    '--no-sandbox',
                    '--disable-setuid-sandbox',
                    '--disable-dev-shm-usage',
                    '--disable-accelerated-2d-canvas',
                    '--no-zygote',
                    '--single-process']) 

添加 args 数组有帮助。我不确定是哪一个,但现在该应用程序在部署和本地时都可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.