请基于python写一个爬虫+可视化
时间: 2024-03-30 15:40:59 浏览: 10
好的,我可以给您提供一个使用 Python 的爬虫+可视化示例,其中使用了 Requests、BeautifulSoup、Pandas、Matplotlib 和 Seaborn 五个库来实现:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 发送请求并解析 HTML 页面
url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取数据(这里以获取网页中所有链接数量为例)
links = soup.find_all('a')
link_count = len(links)
# 创建 Pandas 数据框
data = pd.DataFrame({
'Category': ['Links', 'Other'],
'Count': [link_count, 100-link_count]
})
# 生成第一个图表:饼图
labels = data['Category']
sizes = data['Count']
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
ax1.axis('equal')
plt.title('Links vs Other')
plt.show()
# 发送另一个请求并解析 HTML 页面
url = 'https://www.example.com/another-page'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取数据(这里以获取网页中所有段落数量为例)
paragraphs = soup.find_all('p')
paragraph_count = len(paragraphs)
# 更新 Pandas 数据框
data = pd.concat([data, pd.DataFrame({
'Category': ['Paragraphs', 'Other'],
'Count': [paragraph_count, 100-paragraph_count]
})])
# 生成第二个图表:条形图
categories = data['Category']
counts = data['Count']
plt.bar(categories, counts)
plt.xlabel('Categories')
plt.ylabel('Count')
plt.title('Bar Chart')
plt.show()
# 生成第三个图表:折线图
x = [0, 1, 2, 3]
y = [10, 8, 6, 12]
sns.lineplot(x=x, y=y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Line Chart')
plt.show()
```
这个示例爬取了两个网站的 HTML 页面,并使用 BeautifulSoup 库解析页面获取数据。然后,使用 Pandas 库创建数据框来存储数据,并使用 Matplotlib 和 Seaborn 两个库来生成三种不同的图表类型:饼图、条形图和折线图。
您可以根据您的需求修改代码并使用您自己的数据来生成不同类型的图表。同时,请注意合理使用爬虫并遵守相关规定和法律。