等待Python数据刮取中加载结果

2024-10-02 06:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个数据scape,但是我不知道如何处理Python,等待我发出的加载请求。你知道吗

我正在从以下链接中提取一个表:http://www.ans.gov.br/perfil-do-setor/dados-e-indicadores-do-setor/sala-de-situacao

Go to Caderno 2.0 Select the first value at the droplist Run anything

这里最大的问题是:当我在网站上运行查询时,网站需要一段时间才能获得输出,所以我需要弄清楚如何让Python进入待机状态,直到结果出来(见下图)

Image execution message

有人能帮我吗?拜托。你知道吗

非常感谢!你知道吗


Tags: the数据brhttp网站链接wwwdo
1条回答
网友
1楼 · 发布于 2024-10-02 06:22:57

这个网站之所以要花这么长时间加载,是因为它使用了一些繁重的Javascript来呈现页面。你知道吗

可以使用Splash,它用于呈现基于Javascript的页面。您可以很容易地在Docker中运行Splash,只需向Splash容器发出HTTP请求,该容器将返回类似于web浏览器中呈现的网页的HTML。你知道吗

虽然这听起来过于复杂,但实际上设置起来非常简单,因为您根本不需要修改Docker映像,而且您不需要以前的Docker知识就可以让它工作。启动本地启动服务器只需要一行代码:
docker run -p 8050:8050 -p 5023:5023 scrapinghub/splash

默认超时为30秒,但如果需要等待更长时间才能呈现页面,可以指定其他超时作为参数。 例如,对于300秒的超时:
docker run -it -p 8050:8050 scrapinghub/splash max-timeout 300

然后,只需修改Python代码中的任何现有请求即可路由到splash:

http://example.com/变成
http://localhost:8050/render.html?url=http://example.com/


或者,您可以像上面的另一个用户所评论的那样使用Selenium,但是我个人使用Splash的时候比较容易。你知道吗

相关问题 更多 >

    热门问题