scrapy + pandas 进行数据分析的一个例子

本文介绍了使用Python的Scrapy框架和Pandas库进行数据挖掘和分析的过程。首先,创建Scrapy项目,定义Item来存储数据,然后建立爬虫抓取指定贴吧的帖子信息,包括发帖人、时间、回复数和链接。接着,将抓取的数据转换为DataFrame进行数据规整,包括每年的主题数、发帖最多的用户、被回复最多的用户以及每月的主题数。最后,文章总结了在实践中遇到的问题和解决方案。
摘要由CSDN通过智能技术生成

在没有看<利用python进行数据分析>之前一直不太明白数据分析是什么事情, 就跟学了很久python以后, 还是要时常搜索下, python能用来干嘛. 学了这两个模块后, 总算对于数据分析有一个初步的概念, 进行了一次实践

注意 : 本文原则上不提供scrapy或者pandas的使用方法介绍.

环境

  • python2.7
  • scrapy
  • pandas
  • matplotlib
  • windowns7
  • ipython

目的

获取指定贴吧的所有主题的发帖人, 发帖时间, 回复数, 帖子链接, 之后进行以下分析:

  • 每年总主题数
  • 每年发主题最多的用户
  • 每年回复最多的帖子
  • 每年每个主题平均回复数
  • 每年每个月的主题数

具体操作

数据挖掘


新建item

item我就理解成一个对象了, 但是是没有方法的对象, 或许称为一个bean更好.

import scrapy
class Tieba_hoter_item(scrapy.Item):
title = scrapy.Field()
author = scrapy.Field()
date = scrapy.Field()
times = scrapy.Field()
href = scrapy.Field()

item的建立紧扣我们的目的, 以一条帖子为一个item, 记录下它的属性.

建立爬虫

首先来分析我们信息的来源
这里写图片描述

还算简单, 不需要进帖子就可以获得回复数, 作者, 主题, 可惜没有时间(时间对我我们的分析非常重要).

这里写图片描述

进入帖子中, 发现了非常规范的时间显示, 正式我们需要的. 具体获得方式在下面代码中会有所体现, 这里不再赘述.

之后我们建立爬虫. 上一篇的时候每次都手动设定headers, 这回搜寻资料, 了解到了一个属性DEFAULT_REQUEST_HEADERS, 这个是scrapy.Request的默认header设置. scrapy爬虫开始的连接是一个数组, 我决定用循环将所有页面添加进去

start_urls = []
pagesize = 50
original_url = 'http://tieba.baidu.com/f?kw=clannad&ie=utf-8&pn='
for x in xrange(4500):
    start_urls.append(original_url + str(x * pagesize))
result_list = []

之后是第一层解析, 要做的事情是获取标题, 链接, 回复数, 作者, 再根据链

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值