@1-5使用pandas保存豆瓣短评数据
使用pandas保存豆瓣短评数据
本节课程的内容是介绍open函数和pandas两种保存已爬取的数据的方法,并通过实际例子使用pandas保存数据。
保存数据的方法:
- open函数保存
- pandas包保存(本节课重点讲授)
- csv模块保存
- numpy包保存
使用open函数保存数据
1. open函数用法
- 使用with open()新建对象
写入数据
import requestsfrom lxml import etreeurl = 'https://book.douban.com/subject/1084336/comments/'r = requests.get(url).texts = etree.HTML(r)file = s.xpath('//div[@class="comment"]/p/text()')with open('pinglun.txt', 'w', encoding='utf-8') as f: #使用with open()新建对象ffor i in file:print(i)f.write(i) #写入数据,文件保存在当前工作目录可以使用以下方法得到当前工作目录或者修改当前工作目录
import osos.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 #导入pandasimport numpy as np #导入numpyimport 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 pdimport numpy as npdf = pd.DataFrame(np.random.randn(6,3)) #创建随机值并保存为DataFrame结构print(df.head())df.to_csv('numpppy.csv')
实战环节
结合之前学习的获取数据、解析数据的知识,爬取《小王子》豆瓣短评的数据,并把数据保存为本地的excel表格
注意:如果运行以上程序出现ImportError: No module named ‘openpyxl’错误,那么需要先安装“openpyxl”模块。
造数爬虫与Python爬虫的对比
| 造数爬虫 | Python爬虫 |
|---|---|
| 可视化界面 | 无可视化界面 |
| 学习时间短,容易上手 | 学习时间较长,难度较大 |
| 可以用于快速爬取拉勾、IT桔子、京东、大众点评等网站的公开数据 | 可以用于爬取符合Robots协议的所有想要爬取的公开数据 |
可登录造数科技网站了解造数爬虫的详细情况和使用方法。
课后作业
- 使用csv保存数据,了解更多的操作
- 学习如何使用造数
- 思考如何在Python爬虫中翻页
参考代码:爬取《小王子》豆瓣短评前5页的短评数据
import requestsfrom lxml import etreeimport pandas as pdurls=['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).texts = etree.HTML(r)file = s.xpath('//div[@class="comment"]/p/text()')pinglun = pinglun + filedf = pd.DataFrame(pinglun) #把pinglun列表转换为pandas DataFramedf.to_excel('pinglun.xlsx') #使用pandas把数据保存到excel表格思考一下,以上代码还有什么更加简洁的写法
补充知识
- 阅读csv模块官方文档,了解使用csv模块保存数据的方法
- 可以前往一译中文文档,获取到Python安装包的中文文档,学习起来更加流畅
- 在pandas中文文档中可以查看到pandas全面的用法
- 在10分钟了解pandas中可以快速了解和学习pandas的基本操作
- 阅读pandas读取和储存数据,学习使用pandas读取和储存数据的更多详细操作
关注DC,获取更多学习资源
@1-5使用pandas保存豆瓣短评数据的更多相关文章
- 【Python】利用豆瓣短评数据生成词云
在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的. 前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下. 思路分析 读文件 ...
- Java豆瓣电影爬虫——使用Word2Vec分析电影短评数据
在上篇实现了电影详情和短评数据的抓取.到目前为止,已经抓了2000多部电影电视以及20000多的短评数据. 数据本身没有规律和价值,需要通过分析提炼成知识才有意义.抱着试试玩的想法,准备做一个有关情感 ...
- Java豆瓣电影爬虫——抓取电影详情和电影短评数据
一直想做个这样的爬虫:定制自己的种子,爬取想要的数据,做点力所能及的小分析.正好,这段时间宝宝出生,一边陪宝宝和宝妈,一边把自己做的这个豆瓣电影爬虫的数据采集部分跑起来.现在做一个概要的介绍和演示. ...
- 《恶魔人crybaby》豆瓣短评爬取
作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...
- 哪吒票房超复联4,100行python代码抓取豆瓣短评,看看网友怎么说
<哪吒之魔童降世>这部国产动画巅峰之作,上映快一个月时间,票房口碑双丰收. 迄今已有超一亿人次观看,票房达到42.39亿元,超过复联4,跻身中国票房纪录第三名,仅次于<战狼2> ...
- Scrapy 通过登录的方式爬取豆瓣影评数据
Scrapy 通过登录的方式爬取豆瓣影评数据 爬虫 Scrapy 豆瓣 Fly 由于需要爬取影评数据在来做分析,就选择了豆瓣影评来抓取数据,工具使用的是Scrapy工具来实现.scrapy工具使用起来 ...
- @1-4使用Xpath解析豆瓣短评
使用Xpath解析豆瓣短评 Python爬虫(入门+进阶) DC学院 本节课程主要介绍解析神器Xpath是什么.Xpath如何安装及使用,以及使用实际的例子讲解Xpath如何解析豆瓣短评的网页 ...
- 利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)
在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析.本部分关注可以聚合.合并.重塑数据的方法. 1.层次化索引 层次化索引(hierarchical indexing)是panda ...
- 【python数据挖掘】使用词云分析来分析豆瓣影评数据
概述: 制作词云的步骤: 1.从文件中读取数据 2.根据数据追加在一个字符串里面,然后用jieba分词器将评论分开 3.设置WordCloud词云参数 4.保存最后的结果 数据:使用爬取的豆瓣影评数据 ...
随机推荐
- js获取url参数,直接获取url中文
function GetQueryString(name)//name参数名称 { var reg = new RegExp("(^|&)"+ name +"=( ...
- openlayers/// Puppeteer.js
1.定位;https://viglino.github.io/ol3-ext/examples/map.interaction.geolocationdraw.html 2 .添加Overlay d ...
- Realtime Rendering 6
[Realtime Rendering 6] 1.Lighting computations occur in two phases: 1)light phase. used to compute t ...
- Unity中的四个路径
Application.database:当前工程的Assets文件夹(编辑器) Application.StreamingAssets:IO流路径 当前工程的StreamingAssets文件夹(编 ...
- 关于订单BOM替换组件不成功的问题
替换成功的案例: SELECT * FROM IN_BOM_DETAILS WHERE BOM_ID='00161815_2023_01P19'; --成品编码:000000101011006433P ...
- 反射实现 AOP 动态代理模式(Spring AOP 的实现原理)
枚举 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象.这种实例有限而且固定的类,在Java里被称为枚举类. 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编 ...
- 由于html元素加载导致的问题
js中要求执行的事件是在完全加载完,但由于本地环境测试一直没发现出问题,在上线后由于网络延迟导致元素加载慢,而事件执行完,没达到预期目标. 这时就需要用到属性 readyState readyStat ...
- POJ-3126.PrimePath(欧拉筛素数打表 + BFS)
给出一篇有关素数线性筛和区间筛的博客,有兴趣的读者可以自取. 本题大意: 给定两个四位的素数,没有前导零,每次变换其中的一位,最终使得两个素数相等,输出最小变换次数.要求变换过程中的数也都是素数. 本 ...
- React 入门实例教程【转】
Any day will do. 哪一天都行 Are you kidding? 你在开玩笑吧! Congratulations! 祝贺你! I don’t mean it. 我不是故意的. 原文作者: ...
- TZOJ 2725 See you~(二维树状数组单点更新区间查询)
描述 Now I am leaving hust acm. In the past two and half years, I learned so many knowledge about Algo ...