利用requests、BS4、Json等库,从新浪体育爬取当前NBA东西部球队排名,并保存为文本文件
时间: 2024-12-16 10:30:43 浏览: 11
首先,为了从新浪体育爬取NBA的东西部球队排名,你需要使用Python的一些库,如`requests`用于发送HTTP请求获取网页内容,`BeautifulSoup`(简称BS4)解析HTML文档,以及`json`处理JSON数据。以下是基本步骤:
1. **安装所需库**:
确保已经安装了这三个库,如果没有可以使用pip安装:
```
pip install requests beautifulsoup4 python-dateutil
```
2. **编写代码**:
```python
import requests
from bs4 import BeautifulSoup
import json
# 设置URL
url = "https://sports.sina.com.cn/nba/rank/"
# 发送GET请求
response = requests.get(url)
# 检查请求是否成功
if response.status_code == 200:
# 解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 找到包含球队信息的部分
rank_section = soup.find('div', class_='rank_table')
# 提取数据
teams_data = []
for row in rank_section.find_all('tr'):
cols = row.find_all('td')
team_name = cols[0].text.strip()
team_division = cols[1].text.strip() # 通常东部或西部会在这里
teams_data.append({'team': team_name, 'division': team_division})
# 将数据转化为JSON格式
ranking_json = json.dumps(teams_data, ensure_ascii=False, indent=2)
# 保存为文本文件
with open('nba_rankings.txt', 'w', encoding='utf-8') as f:
f.write(ranking_json)
else:
print(f"请求失败,状态码:{response.status_code}")
```
这个脚本假设排名表格的结构保持不变。如果网站结构有变化,你可能需要调整CSS选择器或XPath表达式来定位正确的元素。
3. **运行并检查结果**:
运行这段代码,它将创建一个名为'nba_rankings.txt'的文本文件,其中包含了爬取到的NBA球队及其所属分区的信息。
阅读全文