使用美丽的汤解析Edabit-Python

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

我正在尝试编写代码,以通过解析与网站上与用户相关联的单个网址来完成Edabit的挑战来获得XP数量。这是我所拥有的:

from bs4 import BeautifulSoup
import requests
url = "https://edabit.com/user/xHRGAqa56TcXTLEMW"
req = requests.get(url)
soup = BeautifulSoup(req.content, 'html.parser')
div = soup.find(id="react-root")
print(div)

发现返回的值是none,但我真的不知道为什么。我认为该网站是由流星制成的,可能造成了问题?

非常感谢任何帮助。

python meteor beautifulsoup
2个回答
0
投票

没有输出表示汤。查找与您搜索的任何ID不匹配。再次正确检查html文件。可能有效。


0
投票

[当网站上有动态内容,然后在浏览器中执行javascript时加载动态内容,就会发生这种情况。

您可以在浏览器中查看网页的页面源,以查看标记是否存在。

由于您的脚本不是浏览器,而只是一个从网站获取网页的程序,因此,脚本中未显示内容。

如果您希望在脚本中执行该javascript,则可以设置splash服务器之类的东西。

[另一种方法是检查javascript在浏览器中发出的网络请求以加载该内容(通常是API请求),然后进行相同的请求以直接从API获取内容,而不是从浏览器中进行抓取。

希望有帮助。

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