前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Pandas在爬虫中的应用:快速清洗和存储表格数据

Pandas在爬虫中的应用:快速清洗和存储表格数据

原创
作者头像
jackcode
发布2025-02-27 11:11:12
发布2025-02-27 11:11:12
6600
代码可运行
举报
文章被收录于专栏:爬虫资料爬虫资料
运行总次数:0
代码可运行
爬虫代理
爬虫代理

在数据分析和爬虫领域,Pandas 是一个功能强大的库,广泛用于数据清洗、处理和存储。结合爬虫技术,Pandas 能有效地处理从网页抓取的表格数据,进行清洗和存储。

关键数据分析

在本案例中,我们将以 贝壳网(www.ke.com) 上的上海二手房信息为例,演示如何使用 Pandas 进行数据清洗和存储。目标是获取楼盘名称、价格等信息,并进行房价分析。

1. 数据采集

首先,我们需要从贝壳网获取上海二手房的楼盘和价格信息。由于贝壳网可能有反爬虫机制,直接请求可能会被封禁。因此,我们需要设置爬虫代理 IP、User-Agent 和 Cookie 来模拟正常用户访问。

代码语言:python
代码运行次数:0
复制
import requests
import pandas as pd
from fake_useragent import UserAgent

# 设置代理 IP(以亿牛云爬虫代理为例 )
proxies = {
    'http': 'http://16YUN:16IP@proxy.16yun.cn:8080',# 以实际代理信息替换
    'https': 'http://16YUN:16IP@proxy.16yun.cn:8080',# 以实际代理信息替换
}

# 设置请求头
ua = UserAgent()
headers = {
    'User-Agent': ua.random,
    'Cookie': 'your_cookie_here',  # 请替换为实际的 Cookie
}

# 目标 URL
url = 'https://sh.ke.com/ershoufang/'

# 发送请求
response = requests.get(url, headers=headers, proxies=proxies)
response.encoding = 'utf-8'

# 检查请求是否成功
if response.status_code == 200:
    print("请求成功")
else:
    print(f"请求失败,状态码:{response.status_code}")

2. 数据解析

贝壳网的二手房信息通常以表格形式呈现。我们可以使用 Pandas 的 read_html 函数直接读取网页中的表格数据。需要注意的是,read_html 需要安装 lxml 库。

代码语言:python
代码运行次数:0
复制
# 读取网页中的所有表格
tables = pd.read_html(response.text)

# 打印所有表格的数量
print(f"共找到 {len(tables)} 个表格")

# 假设我们需要第一个表格
df = tables[0]

# 查看前5行数据
print(df.head())

3. 数据清洗

获取到数据后,通常需要进行清洗,如去除重复值、处理缺失值、转换数据类型等。以下是一些常见的数据清洗操作:

代码语言:python
代码运行次数:0
复制
# 去除重复行
df = df.drop_duplicates()

# 处理缺失值(例如,填充缺失值)
df = df.fillna('未知')

# 转换数据类型(例如,将价格列转换为数值类型)
df['价格'] = pd.to_numeric(df['价格'], errors='coerce')

# 删除包含缺失值的行
df = df.dropna()

# 重命名列
df = df.rename(columns={'旧列名': '新列名'})

# 查看清洗后的数据
print(df.head())

4. 数据存储

清洗后的数据可以存储为 Excel 文件,方便后续分析。Pandas 提供了 to_excel 函数来实现这一功能。

代码语言:python
代码运行次数:0
复制
# 存储为 Excel 文件
df.to_excel('shanghai_ershoufang.xlsx', index=False)

代码演变模式可视化

在实际应用中,爬虫代码可能需要多次迭代和优化。以下是代码演变的一个示例流程:

  1. 初始版本:直接请求网页并解析表格数据。
  2. 添加代理:为应对反爬虫机制,添加爬虫代理 IP、User-Agent 和 Cookie。
  3. 数据清洗:去除重复值、处理缺失值、转换数据类型等。
  4. 数据存储:将清洗后的数据存储为 Excel 文件。

每个步骤的代码都在前面的示例中有所体现。

创意点:技术关系图谱

在爬虫项目中,涉及多个技术组件和库。以下是一个简单的技术关系图谱,展示了各个组件之间的关系:

代码语言:plain
复制
+------------------+       +------------------+       +------------------+
|   Requests       | <---> |   BeautifulSoup  | <---> |   Pandas         |
|  (发送请求)      |       |  (解析网页)      |       |  (数据清洗)      |
+------------------+       +------------------+       +------------------+
        |                        |                        |
        v                        v                        v
+------------------+       +------------------+       +------------------+
|   User-Agent     |       |   Proxy IP       |       |   Excel          |
|  (伪装身份)      |       |  (代理访问)      |       |  (存储数据)      |
+------------------+       +------------------+       +------------------+

在实际项目中,可能还会涉及其他技术,如数据库存储、数据可视化等。根据项目需求,可以扩展和调整技术栈。

总结

结合 Pandas 和爬虫技术,可以高效地获取、清洗和存储网页中的表格数据。通过合理设置爬虫代理、User-Agent 和 Cookie,可以有效应对反爬虫机制。数据清洗是数据分析中至关重要的一步,Pandas 提供了丰富的功能来处理各种数据清洗任务。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关键数据分析
    • 1. 数据采集
    • 2. 数据解析
    • 3. 数据清洗
    • 4. 数据存储
  • 代码演变模式可视化
  • 创意点:技术关系图谱
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档