Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python爬虫数据存哪里|数据存储到文件的几种方式

Python爬虫数据存哪里|数据存储到文件的几种方式

作者头像
吾非同
发布于 2021-03-12 03:07:23
发布于 2021-03-12 03:07:23
12.1K03
代码可运行
举报
文章被收录于专栏:吾非同吾非同
运行总次数:3
代码可运行

爬虫请求解析后的数据,需要保存下来,才能进行下一步的处理,一般保存数据的方式有如下几种:

  • 文件:txt、csv、excel、json等,保存数据量小。
  • 关系型数据库:mysql、oracle等,保存数据量大。
  • 非关系型数据库:Mongodb、Redis等键值对形式存储数据,保存数据量大。
  • 二进制文件:保存爬取的图片、视频、音频等格式数据。

首先,爬取豆瓣读书《平凡的世界》的3页短评信息,然后保存到文件中。

https://book.douban.com/subject/1200840/comments/

「具体代码如下(忽略异常):」

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup

urls=['https://book.douban.com/subject/1200840/comments/?start={}&limit=20&status=P&sort=new_score'.format(str(i)) for i in range(0, 60, 20)] #通过观察的url翻页的规律,使用for循环得到3个链接,保存到urls列表中
print(urls)
dic_h = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
comments_list = [] #初始化用于保存短评的列表

for url in urls: #使用for循环分别获取每个页面的数据,保存到comments_list列表
    r = requests.get(url=url,headers = dic_h).text

    soup = BeautifulSoup(r, 'lxml')
    ul = soup.find('div',id="comments")
    lis= ul.find_all('p')

    list2 =[]
    for li in lis:
        list2.append(li.find('span').string)
    # print(list2)
    comments_list.extend(list2)
 print(comments_list)

爬到评论数据保存到列表中:

使用open()方法写入文件

关于Python文件的读写操作,可以看这篇文章快速入门Python文件操作

保存数据到txt

将上述爬取的列表数据保存到txt文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open('comments.txt', 'w', encoding='utf-8') as f: #使用with open()新建对象f
    # 将列表中的数据循环写入到文本文件中
    for i in comments_list:
        f.write(i+"\n") #写入数据

保存数据到csv

CSV(Comma-Separated Values、逗号分隔值或字符分割值)是一种以纯文件方式进行数据记录的存储格式,保存csv文件,需要使用python的内置模块csv。

写入列表或者元组数据:创建writer对象,使用writerow()写入一行数据,使用writerows()方法写入多行数据。

「使用writer对象写入列表数据,示例代码如下:」

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import csv

headers = ['No','name','age']
values = [
    ['01','zhangsan',18],
    ['02','lisi',19],
    ['03','wangwu',20]
]
with open('test1.csv','w',newline='') as fp:
    # 获取对象
    writer = csv.writer(fp)
    # 写入数据
    writer.writerow(headers) #写入表头
    writer.writerows(values) # 写入数据

写入字典数据:创建DictWriter对象,使用writerow()写入一行数据,使用writerows()方法写入多行数据。

「使用DictWriter对象写入字典数据,示例代码如下:」

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import csv

headers = ['No','name','age']
values = [
    {"No":'01',"name":'zhangsan',"age":18},
    {"No":'02',"name":'lisi',"age":19},
    {"No":'03',"name":'wangwu',"age":20}]
with open('test.csv','w',newline='') as fp:
    dic_writer = csv.DictWriter(fp,headers)
    dic_writer.writeheader()# 写入表头
    dic_writer.writerows(values) #写入数据

「将上述爬取到的数据保存到csv文件中:」

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import csv
from bs4 import BeautifulSoup
urls=['https://book.douban.com/subject/1200840/comments/?start={}&limit=20&status=P&sort=new_score'.format(str(i)) for i in range(0, 60, 20)] #通过观察的url翻页的规律,使用for循环得到5个链接,保存到urls列表中
print(urls)
dic_h = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
comments_list = [] #初始化用于保存短评的列表

for url in urls: #使用for循环分别获取每个页面的数据,保存到comments_list列表
    r = requests.get(url=url,headers = dic_h).text

    soup = BeautifulSoup(r, 'lxml')
    ul = soup.find('div',id="comments")
    lis= ul.find_all('p')

    list2 =[]
    for li in lis:
        list2.append(li.find('span').string)
    # print(list2)
    comments_list.extend(list2)

new_list = [[x] for x in comments_list] #列表生成器,将列表项转为子列表

with open("com11.csv", mode="w", newline="", encoding="utf-8") as f:
    csv_file = csv.writer(f) # 创建CSV文件写入对象
    for i in new_list:
        csv_file.writerow(i)

使用pandas保存数据

pandas支持多种文件格式的读写,最常用的就是csv和excel数据的操作,因为直接读取的数据是数据框格式,所以在爬虫、数据分析中使用非常广泛。关于pandas操作excel的方法,可以看这篇文章:pandas操作excel全总结

一般,将爬取到的数据储存为DataFrame对象(DataFrame 是一个表格或者类似二维数组的结构,它的各行表示一个实例,各列表示一个变量)。

pandas保存数据到excel、csv

pandas保存excel、csv,非常简单,两行代码就可以搞定:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame(comments_list) #把comments_list列表转换为pandas DataFrame
df.to_excel('comments.xlsx') #保存到excel表格
# df.to_csv('comments.csv')#保存在csv文件
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吾非同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
拿来就用能的Python词云图代码|wordcloud生成词云详解
词云也叫文字云,是一种可视化的结果呈现,常用在爬虫数据分析中,原理就是统计文本中高频出现的词,过滤掉某些干扰词,将结果生成一张图片,直观的获取数据的重点信息。今天,我们就来学习一下Python生成词云的常用库「wordcloud」。
吾非同
2021/03/12
4.8K0
【Python爬虫五十个小案例】爬取豆瓣电影Top250
文章链接:https://cloud.tencent.com/developer/article/2470420
小馒头学Python
2024/11/25
5950
【Python爬虫五十个小案例】爬取豆瓣电影Top250
【Python爬虫五十个小案例】爬取全国高校名单
文章链接:https://cloud.tencent.com/developer/article/2472469
小馒头学Python
2024/12/01
2900
【Python爬虫五十个小案例】爬取全国高校名单
【python实操】年轻人,想会写抢购脚本和爬虫?试试多线程吧(附爬虫完整源代码)
Python 多线程(multi-threading)是一种利用多个线程同时执行任务的技术,它旨在提高程序的运行效率和性能。
20岁爱吃必胜客
2023/03/27
1.2K0
【python实操】年轻人,想会写抢购脚本和爬虫?试试多线程吧(附爬虫完整源代码)
Python爬虫之文件存储#5
文件存储形式多种多样,比如可以保存成 TXT 纯文本形式,也可以保存为 JSON 格式、CSV 格式等,本节就来了解一下文本文件的存储方式。
仲君Johnny
2024/02/10
2270
Python爬虫之文件存储#5
Python爬虫入门案例详细教程
刚入门的新手想要一个快速上手的爬虫案例。案例要简单易懂,步骤清晰,不需要复杂的设置。然后,考虑使用哪个库。Requests和BeautifulSoup是比较常见且容易上手的组合,适合静态页面。如果用户以后需要处理动态内容,可能需要提到Selenium或Scrapy,但作为入门案例,先保持简单。
华科云商小徐
2025/04/03
2260
033Python爬虫学习笔记-1从入门到爬取豆瓣书评影评
1.什么是爬虫 可以理解为抓取、解析、存储互联网上原始信息的程序工具,Google、Baidu底层都是爬虫。 2.为什么学Python和爬虫 从2013年毕业入职起,我已在咨询行业呆了4.5年,期间历经了从尽职调查、战略规划、业务转型,到信用风险管理、数据管理等多类项目,也经历了从Analyst到Consultant到Senior再到Manager的角色转变,收获良多。 然而时代在变,市场环境、金融行业、科技融合程度已今非昔比,自身发展需求与职业瓶颈的矛盾越来越突出。在当前的年纪,所有职业路径判断与选择
企鹅号小编
2018/02/01
1.7K0
033Python爬虫学习笔记-1从入门到爬取豆瓣书评影评
【python爬虫】爬虫编程技术的解密与实战
Python领域就像一片未被勘探的信息大海,引领你勇敢踏入Python数据科学的神秘领域。这是一场独特的学习冒险,从基本概念到算法实现,逐步揭示更深层次的模式分析、匹配算法和智能模式识别的奥秘。
SarPro
2024/02/20
2630
【python爬虫】爬虫编程技术的解密与实战
【Python爬虫实战入门】:全球天气信息爬取
注意:如果一段文档格式不标准,那么在不同解析器生成的 Beautiful Soup 数可能不一样。 查看 解析器之间的区别 了解更多细节。
爱喝兽奶的熊孩子
2024/05/08
7060
【Python爬虫实战入门】:全球天气信息爬取
python爬虫获取豆瓣图书Top250
在上一篇博客《python爬虫获取豆瓣电影TOP250》中,小菌为大家带来了如何将豆瓣电影Top250的数据存入MySQL数据库的方法。这次的分享,小菌决定再带着大家去研究如何爬取豆瓣图片的Top250信息,并将数据保存在csv文件中!
大数据梦想家
2021/01/22
1.3K0
python爬虫获取豆瓣图书Top250
Python爬虫:保姆级教你完成数据存储
在上面的几篇文章当中都有实战项目进行配合,帮助各位看我的文章的小伙伴可以亲切的感受到爬虫的乐趣。在实战的过程当中很多时候也会将数据保存起来放在Excel文件或者是文本文件当中,但是却没有对数据的存储做详细的介绍,因此本次文章我就打算为大家带来数据存储的保姆级教程!
我被狗咬了
2021/02/25
2.7K0
Python爬虫:保姆级教你完成数据存储
【菜鸟致敬】爬取豆瓣的短评(⊙o⊙)…
因为需要一点数据,所以就去爬取一点豆瓣短评的数据。因为短评页面是生成的静态html,还是很容易爬虫数据的,其中发现了问题每部电影短评在同一条件下最多只能查阅500条,即使你已经登录豆瓣,当然,如果你没有登录只能查看前面的200条短评。
福贵
2018/07/25
1.1K0
【菜鸟致敬】爬取豆瓣的短评(⊙o⊙)…
【详细步骤解析】爬虫小练习——爬取豆瓣Top250电影,最后以csv文件保存,附源码
1.发送请求,根据url地址,然后送请求 2.获取数据,获取服务器返回的响应的内容 3.解析数据:提取想要爬取的内容 4.保存数据:将得到的数据保存为文档
小尘要自信
2023/10/10
1.1K0
python中常见关于Excel表格读写操作
最近在写项目,刚好要运用到excel表格的一些读写,顺便总结一下我以前学过的几个关于表格的操作。在写项目中,经常会见到页面中数据导出到表格中,同时,也会有经常在表格中填写测试用例,然后获取数据来做自动化测试的情况,那就我目前会的几种做一个总结吧~
小雯子打豆豆
2020/08/04
1.5K0
python中常见关于Excel表格读写操作
爬虫实战:爬取当当网所有 Python 书籍
本文主要讲解如何利用urllib、re、BeautifulSoup 这几个库去实战,爬取当当网所有 Python 书籍。
IT派
2018/07/30
1.4K0
爬虫实战:爬取当当网所有 Python 书籍
『爬虫四步走』手把手教你使用Python抓取并存储网页数据!
爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程。如果你还在入门爬虫阶段或者不清楚爬虫的具体工作流程,那么应该仔细阅读本文!
刘早起
2020/10/23
5.7K1
『爬虫四步走』手把手教你使用Python抓取并存储网页数据!
python爬取北京公交数据
弟大不用洗
2024/10/17
1600
解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件
在大数据时代,爬虫技术成为获取和分析网络数据的重要工具。然而,许多开发者在使用Python编写爬虫时,常常遇到数据输出问题,尤其是在生成CSV文件时出错。本文将详细介绍如何解决这些问题,并提供使用代理IP和多线程技术的完整示例代码,以确保高效、准确地生成CSV文件。
jackcode
2024/07/03
2500
解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件
Python爬虫实践
爬取博客信息 import requests from bs4 import BeautifulSoup # import pandas def GetBlogByPage(pageNum): headers={ "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" } targetUrl="http
bering
2020/05/26
4160
利用Deepseek+腾讯云HAI快速创建一个python网页爬虫程序
DeepSeek-R1 在后训练阶段大规模应用了强化学习技术,在标注数据极为稀缺的情况下,显著提升了模型的推理能力。在数学、代码和自然语言推理等任务中,其性能已与 OpenAI O1 正式版相媲美。
洁洁
2025/03/21
1320
推荐阅读
相关推荐
拿来就用能的Python词云图代码|wordcloud生成词云详解
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验