使用python爬虫获取百度百科中的电视剧《平凡的荣耀》演员信息,电视收视率等信息。保存在三个JSON文件中,并根据文件内容进行数据可视化
时间: 2024-11-12 15:40:42 浏览: 91
使用Python爬取百度百科上的电视剧《平凡的荣耀》相关信息,首先需要安装必要的库,如requests、BeautifulSoup、pandas以及json,来进行网络请求、HTML解析和数据处理。以下是一个简单的步骤说明:
1. **安装所需库**:
```bash
pip install requests beautifulsoup4 pandas json
```
2. **编写爬虫脚本**:
```python
import requests
from bs4 import BeautifulSoup
import json
import pandas as pd
# 目标URL
url = "https://baike.baidu.com/item/%E7%B9%B4%E5%8A%A8%E7%9A%84%E8%8D%A3%E8%AF%86/"
def parse_content(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 搜索演员信息部分
actor_info = soup.find('div', {'id': 'content'}).find('table', {'class': '_info'})
if actor_info:
actor_data = extract_actor_data(actor_info)
# 搜索电视收视率信息部分(如果有的话)
rating_info = None # 实际上百度百科可能没有这个直接的数据点,需要查找其他API或源码
if rating_info:
rating_data = extract_rating_data(rating_info)
# 存储到JSON文件
save_to_json(actor_data, 'actors.json')
if rating_data:
save_to_json(rating_data, 'ratings.json')
def extract_actor_data(element):
data = []
for row in element.find_all('tr')[1:]:
cols = row.find_all('td')
name, role = cols[0].text, cols[1].text
data.append({'name': name, 'role': role})
return data
def extract_rating_data(element):
# ...类似提取演员数据的方法...
pass
def save_to_json(data, filename):
with open(filename, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=2)
parse_content(url)
```
注意:实际操作时,百度百科可能会有反爬策略或者结构变动,以上代码可能需要根据实际情况调整。同时,关于电视收视率的信息,百度百科可能没有直接提供API或公开的JSON数据,你可能需要通过网页抓取或者其他数据源(比如第三方数据提供商)获取。
**数据可视化**:
使用pandas将爬取的数据加载进DataFrame后,可以利用matplotlib或seaborn库进行可视化。例如,你可以创建条形图显示演员数量,折线图展示收视率变化等。具体可视化的代码取决于你的需求和所获取的实际数据。
阅读全文