【发布时间】:2020-11-01 11:36:09
【问题描述】:
作为练习的一部分,我正在尝试从网页中抓取数据,但网页的设置方式似乎让我的一些努力受挫。基本上,我认为网页需要一段时间来加载我感兴趣的功能,因此,当我运行代码来提取我想要的数据时,它会失败。这是网页:https://www.cbn.gov.ng/rates/ExchRateByCurrency.asp
我注意到即使检查源代码,表格部分也需要一段时间才能加载。
这是我的代码:
from bs4 import BeautifulSoup as bs
from requests import get
html = get("https://www.cbn.gov.ng/rates/ExchRateByCurrency.asp").text
html = bs(html,"lxml")
html = html.find("div",id="ContentTextinner")
相比之下,网站本身在加载完成后,显然在该部分中有很多内容:
在打开检查视图的情况下重新加载网页后,我发现源代码本身直到一秒钟左右才完全加载。我想这可能就是为什么html.tbody 显示为空的原因,即使在完全加载的页面中,它充满了有价值的信息。我想请教一下如何解决这个问题?
【问题讨论】:
-
我没用过bs4,但是你的代码中不能有一个函数等待,直到加载id为“exTable”的dom元素?然后做你想做的事?另外,检查 URL 是否使用 AJAX 呈现所需的表,它们在页面加载后延迟,以减少页面加载时间?
-
@anuraagtummanapally 我不知道该怎么做。如果您能指出相关方向,我将不胜感激。
标签: python html web-scraping