目 录CONTENT

文章目录

使用pandas保存爬取的豆瓣短评数据

慧行说
2018-04-02 / 0 评论 / 0 点赞 / 1,216 阅读 / 772 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-05-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

将数据通过requests请求爬下来后需要经过Xpath解析,解析过后的数据就可以通过某种数据保存方式保存下来了,不管是存为数据库格式或者文本格式都可以。

保存数据的方法

  • open函数保存
  • pandas包保存
  • csv模块保存
  • numpy包保存

1. open函数保存

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

代码演示

# _*_ coding:utf-8 _*_
import requests
from lxml import etree

def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 20).text # 设置超时,别爬太快
        s = etree.HTML(r)
        file = s.xpath('//div[@class="comment"]/p/text()')

        with open('pinglun.txt','w',encoding = 'utf-8') as f:
            for i in file:
                print(i)
                f.write(i)

    except:
        return "产生异常!"

if __name__ == '__main__':
    url = 'https://movie.douban.com/subject/26393561/comments'
    getHTMLText(url)

2. 使用pandas保存数据

2.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.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'])

2.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')

3. 用pandas保存数据到本地excel

上文我们已经用open函数保存成功文件了,现在用pandas将爬取的内容进行保存。

# _*_ coding:utf-8 _*_
import requests
from lxml import etree
import pandas as pd

def getHTMLText(url):
    try:
        r = requests.get(url,timeout = 20).text # 设置超时,别爬太快
        s = etree.HTML(r)
        file = s.xpath('//div[@class="comment"]/p/text()')
        df = pd.DataFrame(file)
        df.to_excel('douban.xlsx')

    except:
        return "产生异常!"

if __name__ == '__main__':
    url = 'https://movie.douban.com/subject/26393561/comments'
    getHTMLText(url)

没有指定文件路径会默认保存到当前文件夹。

0

评论区