使用pandas保存豆瓣短评数据

Python爬虫(入门+进阶)     DC学院

本节课程的内容是介绍open函数和pandas两种保存已爬取的数据的方法,并通过实际例子使用pandas保存数据。

保存数据的方法:

  • open函数保存
  • pandas包保存(本节课重点讲授)
  • csv模块保存
  • numpy包保存

使用open函数保存数据

1. open函数用法

  • 使用with open()新建对象
  • 写入数据

    import requests
    from lxml import etree
     
    url = 'https://book.douban.com/subject/1084336/comments/'
    r = requests.get(url).text
     
    s = etree.HTML(r)
    file = s.xpath('//div[@class="comment"]/p/text()')
     
    with open('pinglun.txt', 'w', encoding='utf-8') as f: #使用with open()新建对象f
    for i in file:
    print(i)
    f.write(i) #写入数据,文件保存在当前工作目录
  • 可以使用以下方法得到当前工作目录或者修改当前工作目录

    import os
    os.getcwd()#得到当前工作目录
    os.chdir()#修改当前工作目录,括号中传入工作目录的路径

2. open函数的打开模式

参数 用法
r 只读。若不存在文件会报错。
w 只写。若不存在文件会自动新建。
a 附加到文件末尾。
rb, wb, ab 操作二进制
r+ 读写模式打开

使用pandas保存数据

1. Python数据分析的工具包

  • numpy: (Numerical Python的简称),是高性能科学计算和数据分析的基础包
  • pandas:基于Numpy创建的Python包,含有使数据分析工作变得更加简单的高级数据结构和操作工具
  • matplotlib:是一个用于创建出版质量图表的绘图包(主要是2D方面)
  • 常见的导入方法: 
    import pandas as pd #导入pandas
    import numpy as np #导入numpy
    import matplotlib.pypolt as plt #导入matplotlib

注意:pandas 、numpy和matplotlib都需要事先安装

2. pandas保存数据到Excel

  • 导入相关的库
  • 将爬取到的数据储存为DataFrame对象(DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量)
  • to_excel() 实例方法:用于将DataFrame保存到Excel

    df.to_excel('文件名.xlsx', sheet_name = 'Sheet1') #其中df为DataFrame结构的数据,sheet_name = 'Sheet1'表示将数据保存在Excel表的第一张表中
  • read_excel() 方法:从excel文件中读取数据

    pd.read_excel('文件名.xlsx', 'Sheet1', index_col=None, na_values=['NA'])

3. pandas保存数据到csv文件

  • 导入相关的库
  • 将数据储存为DataFrame对象
  • 保存数据到csv文件 
    import pandas as pd
    import numpy as np
    df = pd.DataFrame(np.random.randn(6,3)) #创建随机值并保存为DataFrame结构
    print(df.head())
    df.to_csv('numpppy.csv')

实战环节

结合之前学习的获取数据、解析数据的知识,爬取《小王子》豆瓣短评的数据,并把数据保存为本地的excel表格

import requests
from lxml import etree
 
url = 'https://book.douban.com/subject/1084336/comments/'
r = requests.get(url).text
 
s = etree.HTML(r)
file = s.xpath('//div[@class="comment"]/p/text()')
 
import pandas as pd
df = pd.DataFrame(file)
df.to_excel('pinglun.xlsx')

注意:如果运行以上程序出现ImportError: No module named ‘openpyxl’错误,那么需要先安装“openpyxl”模块。

造数爬虫与Python爬虫的对比

造数爬虫 Python爬虫
可视化界面 无可视化界面
学习时间短,容易上手 学习时间较长,难度较大
可以用于快速爬取拉勾、IT桔子、京东、大众点评等网站的公开数据 可以用于爬取符合Robots协议的所有想要爬取的公开数据

可登录造数科技网站了解造数爬虫的详细情况和使用方法。

课后作业

  • 使用csv保存数据,了解更多的操作
  • 学习如何使用造数
  • 思考如何在Python爬虫中翻页
  • 参考代码:爬取《小王子》豆瓣短评前5页的短评数据

    import requests
    from lxml import etree
    import pandas as pd
     
    urls=['https://book.douban.com/subject/1084336/comments/hot?p={}'.format(str(i)) for i in range(1, 6, 1)] #通过观察的url翻页的规律,使用for循环得到5个链接,保存到urls列表中
     
    pinglun = [] #初始化用于保存短评的列表
    for url in urls: #使用for循环分别获取每个页面的数据,保存到pinglun列表
    r = requests.get(url).text
    s = etree.HTML(r)
    file = s.xpath('//div[@class="comment"]/p/text()')
    pinglun = pinglun + file
     
    df = pd.DataFrame(pinglun) #把pinglun列表转换为pandas DataFrame
    df.to_excel('pinglun.xlsx') #使用pandas把数据保存到excel表格
  • 思考一下,以上代码还有什么更加简洁的写法

补充知识

Python爬虫(入门+进阶)    造数科技   主讲

更多数据科学课程,上DC学院


关注DC,获取更多学习资源

@1-5使用pandas保存豆瓣短评数据的更多相关文章

  1. 【Python】利用豆瓣短评数据生成词云

    在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的. 前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下. 思路分析 读文件 ...

  2. Java豆瓣电影爬虫——使用Word2Vec分析电影短评数据

    在上篇实现了电影详情和短评数据的抓取.到目前为止,已经抓了2000多部电影电视以及20000多的短评数据. 数据本身没有规律和价值,需要通过分析提炼成知识才有意义.抱着试试玩的想法,准备做一个有关情感 ...

  3. Java豆瓣电影爬虫——抓取电影详情和电影短评数据

    一直想做个这样的爬虫:定制自己的种子,爬取想要的数据,做点力所能及的小分析.正好,这段时间宝宝出生,一边陪宝宝和宝妈,一边把自己做的这个豆瓣电影爬虫的数据采集部分跑起来.现在做一个概要的介绍和演示. ...

  4. 《恶魔人crybaby》豆瓣短评爬取

    作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...

  5. 哪吒票房超复联4,100行python代码抓取豆瓣短评,看看网友怎么说

    <哪吒之魔童降世>这部国产动画巅峰之作,上映快一个月时间,票房口碑双丰收. 迄今已有超一亿人次观看,票房达到42.39亿元,超过复联4,跻身中国票房纪录第三名,仅次于<战狼2> ...

  6. Scrapy 通过登录的方式爬取豆瓣影评数据

    Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...

  7. @1-4使用Xpath解析豆瓣短评

    使用Xpath解析豆瓣短评 Python爬虫(入门+进阶)     DC学院 本节课程主要介绍解析神器Xpath是什么.Xpath如何安装及使用,以及使用实际的例子讲解Xpath如何解析豆瓣短评的网页 ...

  8. 利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)

    在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析.本部分关注可以聚合.合并.重塑数据的方法. 1.层次化索引 层次化索引(hierarchical indexing)是panda ...

  9. 【python数据挖掘】使用词云分析来分析豆瓣影评数据

    概述: 制作词云的步骤: 1.从文件中读取数据 2.根据数据追加在一个字符串里面,然后用jieba分词器将评论分开 3.设置WordCloud词云参数 4.保存最后的结果 数据:使用爬取的豆瓣影评数据 ...

随机推荐

  1. 新手如何学习Java——Java学习路线图

    推荐初学者阅读:新手如何学习Java——Java学习路线图

  2. Ubuntu下面的docker开启ssh服务

    选择主流的openssh-server作为服务端: root@161f67ccad50:/# apt-get install openssh-server -y Reading package lis ...

  3. python文件操作之二进制

    列表项 三元运算符号: a=3 b=7 val=a if a>b else val=b print(val) 文件处理 首先给你一个文件,或者自己建立一个文件,那如何查看文件的内容呢? 1.安装 ...

  4. 顺时针打印矩阵(python)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  5. Centos7 下的NTP-server(Chorny) 部署及客户端时间同步配置

    一.介绍 1.本博客以 ceph 集群搭建时的NTP-server 为例. 2.hosts # vim /etc/hosts 10.6.32.20    ceph1     (作为时间服务器) 10. ...

  6. WEB 自动化思路

    前期做了一个关键字驱动模型的WEB自动化项目,特意写文章归纳和总结下. 框架架构图 已经实现的部分: 1. 读写excel数据模板 2.配置中心,支持properties,xml格式的配置文件 3.参 ...

  7. 再谈AR中的图像识别算法

    之前在<浅谈移动平台创新玩法>简单的猜测了easyar中使用的图像识别算法,基于图片指纹的哈希算法的图片检索 .后再阿里引商大神的指点下,意识到图片检测只适用于静态图片的识别,只能做AR脱 ...

  8. PTA 7-2 符号配对(栈模拟)

    请编写程序检查C语言源程序中下列符号是否配对:/*与*/.(与).[与].{与}. 输入格式: 输入为一个C语言源程序.当读到某一行中只有一个句点.和一个回车的时候,标志着输入结束.程序中需要检查配对 ...

  9. java中Date无法获取数据库时分秒的问题

      数据库使用的字段是timestamp(6),在数据库看的时候明明时分秒是有的,然而通过rs.getDate()获取出来的时候时分秒就没有了,查了一下资料终于解决了,这里有一个重要的知识点,java ...

  10. xampp配置多个监听端口和不同的网站目录

    1.配置Apache文件httpd.conf 打开xampp安装目录下的Apache->conf文件夹下的httpd.conf,用记事本打开 首先在Listen 80端口下添加其他监听端口: L ...