欢迎光临
我们一直在努力

Python爬虫零基础入门教程,10分钟搞定数据采集与可视化实战指南

数据爬取与可视化完整指南

数据爬取

工具准备
使用 Python 的 requests 库发送网络请求,搭配 BeautifulSoup 解析网页内容。

import requests
from bs4 import BeautifulSoup
url = "https://example.com"
headers = {"User-Agent": "Mozilla/5.0"} # 模拟浏览器访问
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")

提取数据
根据网页结构定位目标数据,提取新闻标题与链接:

articles = []
for item in soup.select(".news-list li"):= item.select_one(".title").text.strip()
    link = item.select_one("a")["href"]
    articles.append({"title": title, "link": link})

存储数据
将数据保存为 CSV 文件,便于后续分析:

import pandas as pd
df = pd.DataFrame(articles)
df.to_csv("news_data.csv", index=False)

注意事项

  • 遵守目标网站的 robots.txt 规则。
  • 添加请求延时(如 time.sleep(2))避免被封禁。

数据处理

清洗数据
处理缺失值、重复项与非标准格式:

df = pd.read_csv("news_data.csv")
df.drop_duplicates(inplace=True)  # 去重
df.dropna(subset=["title"], inplace=True)  # 删除空标题

数据格式化
提取日期或分类标签:

df["date"] = pd.to_datetime(df["raw_date"], format="%Y-%m-%d")


数据可视化

选择工具

  • 基础图表:使用 matplotlibseaborn
  • 交互图表:推荐 plotlypyecharts

生成图表
示例:绘制新闻数量月度趋势图

import matplotlib.pyplot as plt
monthly_counts = df.groupby(df["date"].dt.to_period("M")).size()
plt.figure(figsize=(10,6))
monthly_counts.plot(kind="line", marker="o")"新闻发布趋势")
plt.xlabel("月份")
plt.ylabel("数量")
plt.savefig("trend.png")  # 导出为图片

高级可视化
使用 seaborn 绘制热力图或箱线图:

import seaborn as sns
sns.heatmap(data=df.corr(), annot=True)

发布到网站

静态文件展示
将图表导出为图片或 HTML 嵌入网页:

<img src="/path/trend.png" alt="新闻趋势图">

动态交互展示
使用 Plotly 生成交互式图表并嵌入:

import plotly.express as px
fig = px.bar(df, x="category", y="count")
fig.write_html("chart.html") # 导出为 HTML


注意事项

  1. 法律合规

    • 避免爬取个人信息或版权内容。
    • 遵循《网络安全法》与《数据安全法》。
  2. 道德约束

    控制爬取频率,减少服务器压力。

  3. 技术规范

    • 使用代理 IP 应对反爬机制。
    • 定期更新解析逻辑以适应网站改版。

参考文献

  1. BeautifulSoup 官方文档:https://www.crummy.com/software/BeautifulSoup/
  2. Pandas 数据处理指南:https://pandas.pydata.org/docs/
  3. Matplotlib 示例库:https://matplotlib.org/stable/gallery/
  4. Plotly 交互图表教程:https://plotly.com/python/
未经允许不得转载:九八云安全 » Python爬虫零基础入门教程,10分钟搞定数据采集与可视化实战指南