Python 3.x 在网站上找不到要爬网的BeautifulSoup类名
我对靓汤还不熟悉 我试图在下面的链接中获得“排名标准”类。 不幸的是,我使用了“criteria”作为soup_findAll()的类, 但它在那里没有表现出任何内容。 我找不到任何其他类名可以提供我想要的数据 (总分、学术声誉等) 我实际上想为多所大学做网络爬网, 所以我希望使用URL,我可以为不同的大学设置格式(只需更改大学名称)。 否则,我就只能使用outerHTML(经过测试,它工作了,但我不知道) 如何为多所大学定制) 我的代码如下。我最终使用了get_text(): 它没有成功,因为它有太多的东西,这让我很难评估我想要的信息 任何帮助都将不胜感激!谢谢Python 3.x 在网站上找不到要爬网的BeautifulSoup类名,python-3.x,beautifulsoup,Python 3.x,Beautifulsoup,我对靓汤还不熟悉 我试图在下面的链接中获得“排名标准”类。 不幸的是,我使用了“criteria”作为soup_findAll()的类, 但它在那里没有表现出任何内容。 我找不到任何其他类名可以提供我想要的数据 (总分、学术声誉等) 我实际上想为多所大学做网络爬网, 所以我希望使用URL,我可以为不同的大学设置格式(只需更改大学名称)。 否则,我就只能使用outerHTML(经过测试,它工作了,但我不知道) 如何为多所大学定制) 我的代码如下。我最终使用了get_text(): 它没有成功,因为
通过JavaScript Ajax请求动态加载数据。但是您可以使用
请求
模块来模拟它
例如:
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))
非常感谢你!这很有帮助!对不起,我纠正了几处打字错误。我早上5点起床,一直工作到下午4点。再次感谢。
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