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

我想在我的 Flask-App 中使用 bs4 来搜索特定的范围。


我以前从未使用过 bs4,所以我有点困惑为什么我没有得到任何搜索结果。


from bs4 import BeautifulSoup


url = "https://www.mcfit.com/de/fitnessstudios/studiosuche/studiodetails/studio/berlin-lichtenberg/"

html_content = requests.get(url).text

soup = BeautifulSoup(html_content, "lxml")


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

print(spans)

类“sc-fzoXWK hnKkAN”仅包含 1 个跨度。当我执行时我只得到一个[]结果。


有只小跳蛙
浏览 116回答 1
1回答

开心每一天1111

这些内容是使用 javascript 动态生成的,因此使用请求检索 HTML 只会检索静态内容,您可以将 BeautifulSoup 与 Selenium 之类的东西结合起来来实现您想要的:安装硒:pip install selenium然后使用 Firefox 引擎或任何其他支持 JavaScript 的引擎检索内容:from bs4 import BeautifulSoupfrom selenium import webdriverdriver = webdriver.Firefox()driver.get('https://www.mcfit.com/de/fitnessstudios/studiosuche/studiodetails/studio/berlin-lichtenberg/')html_content = driver.page_sourcesoup = 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),因此它可以从任何地方使用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python