在网站上找不到要爬行的美丽汤的类名



我是美汤的新手。

我正在尝试在下面的链接中获取"排名标准"类。 不幸的是,我使用"标准"作为 soup_findAll(( 的类, 但它在那里没有显示任何内容。 我找不到任何其他类名可以给我想要的数据 (总分、学术声誉等(

我实际上想为多所大学做网络爬虫, 所以我希望使用我可以为各种大学格式化的 URL(只需更改大学名称(。 否则,我会为此使用 outerHTML(经过测试并且它有效,但我不知道 如何为多所大学定制(

我的代码如下。我最终使用了get_text((:

r = requests.get("https://www.topuniversities.com/universities/california-institute-technology-caltech")
html = r.text
soup = BeautifulSoup(html, 'html.parser')
tds = soup.get_text()
print(tds)

它没有成功,因为它得到了太多的东西,让我很难评估我想要的信息。

任何帮助将不胜感激!谢谢!

我试图抓取的链接:

数据通过 JavaScript Ajax 请求动态加载。但是您可以使用requests模块来模拟它。

例如:

import requests
from bs4 import BeautifulSoup
url = 'https://www.topuniversities.com/universities/california-institute-technology-caltech'
soup = BeautifulSoup( requests.get(url).content, 'html.parser' )
ajax_url = 'https://www.topuniversities.com' + soup.select_one('a.use-ajax')['href'].replace('nojs', 'ajax')
data = requests.post(ajax_url).json()
for d in data:
if 'data' in d:
soup = BeautifulSoup(d['data'], 'html.parser')
break
for div in soup.select('div.criteria'):
criteria = div.find(text=True).strip()
ranking = div.b.get_text(strip=True)
print('{:<30} {}'.format(criteria, ranking))

指纹:

Overall Score:                 97
Academic Reputation:           97
Employer Reputation:           82.8
Faculty Student:               100
Citations per Faculty:         99.9
International Faculty:         100
International Students:        88.2

最新更新