使用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. ORACLE grant权限

    oracle的系统和对象权限 本文转自: http://hi.baidu.com/zhaojing_boy/blog/item/0ffe95091266d939e824885f.html alter ...

  2. day21 xml模块 ATM+购物车

    1. xml模块 <father name="jack"> # 属性的值必须加双引号 <son> 标签的关闭顺序,与开启顺序相反, 最先开启的最后关闭,最后 ...

  3. 齐博CMS:最常用的一些变量名,方便二次开发.必须要熟悉的

    ROOT_PATH程序所在硬盘目录的绝对地址,等同于以前的PHP168_PATH$webdb网站的全局变量,模块的全局变量也是这个$onlineip当前用户的IP$timestamp当前时间$WEBU ...

  4. macOS 为 Markdown 文件开启全文检索方法

    曾经的我一向使用 Evernote + 马克飞象来记载笔记和文档.不过感觉这两个东西越来越不思进取,几年都没什么变化.所以,一年多曾经,我就把一切笔记迁移成本地 Markdown 文件,合作 Drop ...

  5. 有人说,即使没有JavaScript,你也可以做网页。在纯HTML

    有人说,即使没有JavaScript,你也可以做网页.在纯HTML +服务器端语言理论中也可以完成所有功能,那么,为什么以及在哪里存在JavaScript?   JS,全称JavaScript   在 ...

  6. C library:<cctype>(ctype.h)

    1, isalnum(): check whether c is either a decimal digit or an uppercase or lowercase letter. 2, isal ...

  7. 1、str.join() 2、fromkeys() 3、深浅拷贝 4、set()

    1. 补充基础数据类型的相关知识点 1. str. join() 把列表变成字符串 2. 列表不能再循环的时候删除. 因为索引会跟着改变 3. 字典也不能直接循环删除. 把要删除的内容记录在列表中. ...

  8. 151. Reverse Words in a String (String)

    思路: 本题考查的目的并不是使用字符串的函数.方法是两次reverse,先对每个单词先做一次翻转,然后对整个字符串做一次翻转. 需要注意的是去除extra space,并且对全space字符串.以及最 ...

  9. 1. Two Sum (快速排序;有序数组的查找: 两个指针; 哈希表)

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  10. Unity3d插件Master Audio AAA Sound v3.5

    Unity3d声音类插件Master Audio AAA Sound v3.5.8.3Master Audio gives you tremendous ease of use, speed, pow ...