如何废弃受java脚本保护的Hackerearth页面?

时间:2017-12-01 17:06:58

标签: python web-scraping

我想在hackerearth页面中解决问题,例如, https://www.hackerearth.com/@babe

Hackerearth Page

当我检查元素时,我得到了

Inspect Element

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

我不想使用selenium,因为它会打开一个新的浏览器窗口,但我在DJANGO平台上做所有这些,所以我希望所有的脚本在后端处理而不会中断,只返回解决的问题数量,也就是说,119。

1 个答案:

答案 0 :(得分:1)

幸运的是,数据是通过公开的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