python爬虫:用Jupyter Notebook (Anaconda)软件的xpath方法爬取网站https://www.shanghairanking.cn/rankings/bcur/2024的学校名称和排名
时间: 2025-01-25 19:11:51 AIGC 浏览: 78 评论: 5
在Python中,特别是使用Jupyter Notebook(基于Anaconda的环境),你可以利用BeautifulSoup库配合XPath来抓取网站信息。首先确保安装了必要的库,如requests、beautifulsoup4和lxml。下面是一个基本步骤:
1. 安装缺失的库(如果你还没有安装):
```bash
!pip install requests beautifulsoup4 lxml
```
2. 使用Jupyter Notebook编写代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 发送GET请求获取网页内容
url = "https://www.shanghairanking.cn/rankings/bcur/2024"
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML内容
soup = BeautifulSoup(response.text, 'lxml')
# 使用XPath选择学校名称和排名的数据
schools = soup.select('div.rank-item > h2 span:nth-child(1)')
rankings = soup.select('div.rank-item > h2 span:nth-child(2)')
# 存储数据
data = []
for school, ranking in zip(schools, rankings):
name = school.text.strip()
rank = ranking.text.strip().replace(',', '')
data.append({'School Name': name, 'Rank': rank})
# 将数据转换为pandas DataFrame
df = pd.DataFrame(data)
# 可视化或保存数据
print(df)
else:
print(f"无法加载页面,状态码:{response.status_code}")
```
注意,由于网站结构可能会变化,上述XPath表达式可能需要根据实际的HTML结构进行调整。运行这段代码后,你会看到学校名称及其对应的排名。
阅读全文
评论

陈后主
2025.08.05
使用Jupyter Notebook环境进行操作非常方便。

丽龙
2025.07.16
代码示例清晰,步骤明确,易于理解。

半清斋
2025.07.02
该教程详细介绍了如何用Python爬取排名信息,适合初学者学习。

魏水华
2025.06.26
推荐给需要爬取网页数据的Python爱好者。

杜拉拉到杜拉拉
2025.03.29
需要注意网站结构变化可能导致XPath失效。