一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧

2 阅读4分钟

16IP (2).png 作为一名互联网技术爱好者,我对数据的探索充满热情。在本文中,我将以豆瓣读书为案例,详细介绍如何利用Python爬虫、Pandas和Excel这三大工具,一键化地实现数据采集和存储。豆瓣读书作为一个备受推崇的图书评价平台,拥有大量的书籍信息和用户评价数据,适合我们展示数据处理过程。

Pandas简介

在数据处理领域,Python中的Pandas库是一款备受欢迎的工具,它提供了高效的数据结构和数据分析工具,使得数据的处理变得更加简单、快速。主要的数据结构包括Series(一维数据)和DataFrame(二维数据表),这些数据结构为数据分析提供了基础。Pandas支持数据导入、数据清洗、数据操作和数据分析等功能,并且提供了丰富的数据可视化能力,让数据更具有可视化的魅力。

Python中Excel的作用

作为一款被广泛运用的办公软件,Excel在数据处理和分析领域同样扮演着重要的角色。在Python中,我们可以通过Pandas库将处理好的数据导出到Excel文件,从而方便更多人员查看和分析数据。Excel提供了众多功能,比如数据透视表、图表制作等,这些功能可以使数据展示更生动更具有说服力,帮助我们更好地呈现数据分析结果。

案例过程

Python爬虫实现豆瓣读书数据采集

首先,让我们从爬虫的角度出发,使用Python来实现对豆瓣读书网站的数据采集工作。通过发送HTTP请求,我们可以获取网页内容,接着利用Beautiful Soup库来解析页面结构,从而提取出我们需要的书籍信息,如书名、作者、评分和评论等。将这些数据存储为DataFrame结构,将会为后续的数据处理和分析提供便利。

# 导入所需库
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random

# 设置代理信息
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    "host": proxyHost,
    "port": proxyPort,
    "user": proxyUser,
    "pass": proxyPass,
}

proxies = {
    "http": proxyMeta,
    "https": proxyMeta,
}

# 设置随机User-Agent
user_agents = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36 OPR/44.0.2510.1449",
    "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
]

headers = {
    "User-Agent": random.choice(user_agents),
}

# 发起HTTP请求,获取网页内容
url = 'https://book.douban.com/top250?start=0'
response = requests.get(url, headers=headers, proxies=proxies)
soup = BeautifulSoup(response.text, 'html.parser')

# 解析页面内容,提取书籍信息
books = []
for item in soup.find_all('tr', class_='item'):
    title = item.find('div', class_='pl2').find('a').text.strip()
    author = item.find('p', class_='pl').text.strip()
    rating = item.find('span', class_='rating_nums').text.strip()
    comments = item.find('span', class_='pl').text.strip()
    books.append({'Title': title, 'Author': author, 'Rating': rating, 'Comments': comments})

# 将数据转化为DataFrame
df = pd.DataFrame(books)

# 打印输出结果
print(df)

Pandas的数据处理和分析

接下来,我们将导入爬取到的数据,运用Pandas库进行数据处理和分析。通过Pandas的强大功能,我们可以进行数据清洗、统计计算、数据筛选等操作。比如计算平均评分、统计评论数量等,这些数据分析结果将有助于我们更好地了解书籍情况和用户评价。

# 数据清洗与分析
df['Rating'] = df['Rating'].astype(float)  # 将评分列转换为浮点型数据

# 统计平均评分和评论数量
average_rating = df['Rating'].mean()
comments_count = df['Comments'].count()

# 输出统计结果
print(f'平均评分:{average_rating}')
print(f'评论数量:{comments_count}')

利用Excel进行数据存储和展示

最后一步,我们将处理好的数据导出到Excel文件中,借助Excel的功能,我们可以轻松制作数据报表和图表,更加直观地展示数据分析结果。

# 导出数据至Excel
df.to_excel('douban_books_data.xlsx', index=False)

在Excel中,我们可以通过多种图表类型来展示数据,如柱状图、折线图、饼图等,让数据更生动、更易于理解。这种可视化的展示形式不仅能更好地传达数据分析结果,也能让我们即时发现数据之间的关联和规律。

总结

通过以上的实例演示,我们深度探索了如何利用Python爬虫、Pandas和Excel这三大工具,实现数据的一键化采集、处理和展示。从爬取豆瓣读书数据,到利用Pandas进行数据清洗和分析,再到最终将结果导出到Excel中,全程贯穿着数据处理的完整流程。