我想在hackerearth页面上获得“问题解决”,
https://www.hackerearth.com/@babe

python - 如何剪贴受JavaScript保护的Hackerearth页面?-LMLPHP

当我检查元素时,我得到

python - 如何剪贴受JavaScript保护的Hackerearth页面?-LMLPHP

但是在查看源代码时,我找不到暗级700类。我认为内容是从Java脚本加载的。因此,当我使用python的bs4库时,它返回None元素。

我不想使用Selenium,因为它会打开一个新的浏览器窗口,但是我正在DJANGO平台中进行所有操作,因此我希望所有脚本都在后端进行处理而不会受到任何干扰,并且仅返回已解决的问题数量,即119。

最佳答案

幸运的是,数据是通过公开可用的api(此用户为/users/pagelets/babe/coding-data/)加载的,因此您可以使用requestsbs4获取信息。

import requests
from bs4 import BeautifulSoup

user = 'babe'
url = 'https://www.hackerearth.com/users/pagelets/{}/coding-data/'.format(user)
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
problems_solved = soup.find(string='Problems Solved').find_next().text

print(problems_solved)



  119

关于python - 如何剪贴受JavaScript保护的Hackerearth页面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47598154/

10-12 19:17