基于python爬取当当网女士外套数据并做可视化分析
时间: 2023-08-11 18:16:37 浏览: 224
好的,以下是基于Python爬取当当网女士外套数据并做可视化分析的步骤:
## 爬取数据
我们首先需要爬取当当网女士外套的数据,可以使用Python的requests和BeautifulSoup库来实现,代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'http://search.dangdang.com/?key=%C5%AE%CA%C7%CE%C0&act=input'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
items = soup.select('.bigimg > li')
data = []
for item in items:
title = item.select('.name > a')[0].text.strip()
price = item.select('.price > p > span')[0].text.strip()
data.append({'title': title, 'price': price})
print(data)
```
在这段代码中,我们首先定义了要爬取的当当网女士外套的搜索页面链接,并设置了请求头。然后使用requests库发送HTTP请求,并使用BeautifulSoup库解析HTML文档。我们使用CSS选择器来获取每个女士外套的标题和价格,并将它们保存在一个列表中。
## 数据清洗
在获取到数据后,我们需要对其进行清洗和处理,以便后续的可视化分析。我们可以使用pandas库来实现数据清洗和处理,代码如下:
```python
import pandas as pd
df = pd.DataFrame(data)
df['price'] = df['price'].str.extract('(\d+\.\d+)', expand=False).astype(float)
df = df.dropna()
print(df.head())
```
在这段代码中,我们首先将数据列表转换为pandas的DataFrame格式。然后,我们使用正则表达式从价格中提取出数字,并将其转换为浮点数。最后,我们使用dropna()函数删除任何包含NaN值的行,并打印出前五行数据。
## 数据可视化
在对数据进行清洗和处理后,我们可以使用各种数据可视化工具来分析数据并得出结论。这里我们使用matplotlib库来绘制女士外套价格分布的直方图和箱线图,代码如下:
```python
import matplotlib.pyplot as plt
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.hist(df['price'], bins=20, color='skyblue')
plt.xlabel('Price')
plt.ylabel('Count')
plt.title('Price Distribution')
plt.subplot(1, 2, 2)
plt.boxplot(df['price'], vert=False)
plt.xlabel('Price')
plt.title('Price Boxplot')
plt.show()
```
在这段代码中,我们首先创建一个12x6的画布,并使用subplot函数将画布分成两个子图。第一个子图绘制女士外套价格的直方图,第二个子图绘制女士外套价格的箱线图。最后,我们使用show函数显示图形。
## 结论
通过对当当网女士外套数据的爬取和分析,我们可以得出以下结论:
- 女士外套价格主要分布在200元到500元之间,且呈现出右偏分布的趋势;
- 大部分女士外套的价格集中在300元到400元之间,其中中位数为360元;
- 少数女士外套的价格高达1000元以上,但数量很少。
这些结论可以为女士外套的销售策略和市场营销提供有用的参考和指导。
阅读全文