使用Beautiful Soup解析Edabit-Python

时间:2020-04-26 06:51:56

标签: python meteor beautifulsoup

我正在尝试编写代码,以通过解析与站点上与用户相关联的单个URL来完成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)

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

希望有帮助。

答案 1 :(得分:0)

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