为了账号安全,请及时绑定邮箱和手机立即绑定

使用 bs4 搜索 <span> 时得到空结果

使用 bs4 搜索 <span> 时得到空结果

有只小跳蛙 2023-07-05 15:43:56
我想在我的 Flask-App 中使用 bs4 来搜索特定的范围。我以前从未使用过 bs4,所以我有点困惑为什么我没有得到任何搜索结果。from bs4 import BeautifulSoupurl = "https://www.mcfit.com/de/fitnessstudios/studiosuche/studiodetails/studio/berlin-lichtenberg/"html_content = requests.get(url).textsoup = BeautifulSoup(html_content, "lxml")spans = soup.find_all('span', {'class': 'sc-fzoXWK hnKkAN'})print(spans)类“sc-fzoXWK hnKkAN”仅包含 1 个跨度。当我执行时我只得到一个[]结果。
查看完整描述

1 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

这些内容是使用 javascript 动态生成的,因此使用请求检索 HTML 只会检索静态内容,您可以将 BeautifulSoup 与 Selenium 之类的东西结合起来来实现您想要的:


安装硒:


pip install selenium

然后使用 Firefox 引擎或任何其他支持 JavaScript 的引擎检索内容:


from bs4 import BeautifulSoup

from selenium import webdriver


driver = webdriver.Firefox()

driver.get('https://www.mcfit.com/de/fitnessstudios/studiosuche/studiodetails/studio/berlin-lichtenberg/')



html_content = driver.page_source

soup = BeautifulSoup(html_content, "lxml")


elems = soup.find_all('div', {'class': 'sc-fzoXWK hnKkAN'})

print(elems)

如果您使用 Firefox,则 geckodriver 需要可以通过您的脚本访问,您可以从https://github.com/mozilla/geckodriver/releases下载它并将其放在您的 PATH 中(如果您使用的是 c:/windows OS),因此它可以从任何地方使用。


查看完整回答
反对 回复 2023-07-05
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信