Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在网站上找不到要爬网的BeautifulSoup类名_Python 3.x_Beautifulsoup - Fatal编程技术网

Python 3.x 在网站上找不到要爬网的BeautifulSoup类名

Python 3.x 在网站上找不到要爬网的BeautifulSoup类名,python-3.x,beautifulsoup,Python 3.x,Beautifulsoup,我对靓汤还不熟悉 我试图在下面的链接中获得“排名标准”类。 不幸的是,我使用了“criteria”作为soup_findAll()的类, 但它在那里没有表现出任何内容。 我找不到任何其他类名可以提供我想要的数据 (总分、学术声誉等) 我实际上想为多所大学做网络爬网, 所以我希望使用URL,我可以为不同的大学设置格式(只需更改大学名称)。 否则,我就只能使用outerHTML(经过测试,它工作了,但我不知道) 如何为多所大学定制) 我的代码如下。我最终使用了get_text(): 它没有成功,因为

我对靓汤还不熟悉

我试图在下面的链接中获得“排名标准”类。 不幸的是,我使用了“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