《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中
本篇博文是自己在学习崔庆才的《Python3网络爬虫开发实战教程》的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号【小众技术】,关注后回复【PYTHON】,无套路免费送你一个学习大礼包,包括爬虫视频和电子书~
------------------------------------------------------------------华丽分割线----------------------------------------------------------------------------------------------------
数据的存储是爬虫开发中一个很重要的环节,而存储的形式也分为很多种,大体来说分为两种。一种是将爬取到的数据储存到文件中,另一种就是将数据直接存储到数据库中。两种形式各有各的优点。
今天我就总结一下如何将爬取到的数据存储到TXT,Word,Excel,Json等文件中。其实这些方法大同小异,原理都差不多,只不过是分别运用了不同的库函数,使用的不同的方法而已。
1.将数据存储到TXT文件中
存到TXT文件是最简单也是最好理解的,主要是用到了open函数。接下来我就用一个小例子给大家演示一下吧。我会爬取一下知乎(www.zhihu.com)发现页面推荐的几个问题,将标题,答主,答案存储到一个TXT文件中,每个问题用“=”来隔开。废话话不多说,直接上代码讲解!
import requests,docx
from pyquery import PyQuery as pqheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
}url = 'https://www.zhihu.com/explore'def get_page(url,headers):response = requests.get(url,headers=headers)#用pyquery解析工具对网页进行解析doc = pq(response.text)#对于多结果要调用items()方法,以便进行遍历items = doc('.explore-tab .feed-item').items()for item in items:#获取标题title = item.find('h2').text()#获取答主author = item.find('.author-link').text()#获取回答,由于回答内容中也包含HTML代码,所以还需要用pq将纯文本提取出来text = pq(item.find('.content').html()).text()#保存数据save_page(title,author,text)def save_page(title,author,text):with open('zhihu.txt','a',encoding='utf8') as f:f.write(title+'\n')f.write(author+'\n')f.write(text+'\n')f.write('='*50+'\n'*2)if __name__ == '__main__':get_page(url,headers)
2.将数据存储到Word文档中
其实Word和TXT都是文本存储容器,只不过Word文档的功能多,可以更改文本的格式。如果想要将爬取的数据放入Word文档需要先用pip安装python-docx模块,然后在文档中导入docx库,使用一些方法即可。没有什么新鲜的内容。例子还用上面那个,只需要将save_page()方法改一下就可以了:
import requests,docx
from pyquery import PyQuery as pqheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'
}url = 'https://www.zhihu.com/explore'def get_page(url,headers):response = requests.get(url,headers=headers)#用pyquery解析工具对网页进行解析doc = pq(response.text)#对于多结果要调用items()方法,以便进行遍历items = doc('.explore-tab .feed-item').items()global doc1doc1 = docx.Document('zhihu.docx')for item in items:#获取标题title = item.find('h2').text()#获取答主author = item.find('.author-link').text()#获取回答,由于回答内容中也包含HTML代码,所以还需要用pq将纯文本提取出来text = pq(item.find('.content').html()).text()#保存数据save_page(title,author,text)doc1.save('zhihu1.docx')#存储到Word
def save_page(title,author,text):doc1.add_paragraph(title)doc1.add_paragraph(author)doc1.add_paragraph(text)doc1.add_paragraph('='*50+'\n')if __name__ == '__main__':get_page(url,headers)
3.将数据存储到Excel文档中
详见这篇博文:《崔庆才Python3网络爬虫开发实战教程》学习笔记(3):抓取猫眼电影榜单TOP100电影,并存入Excel表格
4.将数据存储到Json中
Json是一种轻量级的数据交换格式,它通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高。要想将数据存储为json格式的字符串数据,需要了解两个函数:
- json.loads():将json文本字符串转换为Json对象(loads:load string)
- json.dumps():将json对象转换为json文本字符串(loads:dump string)
需要注意的是:json文本字符串必须是双引号,否则会报错:json.decoder.JSONDecodeError,也就是说json.loads()参数为双引,json对象可以用单引号,json.dumps()里面的参数可以单引,转换出来后就成了双引号。
import json#json文本字符串
j ='''[{"id" : "B227645ADB1628D62732AC8ADDEAD069","server" : "uk02.anss.vip","server_port" : 20036,"server_udp_port" : 0,"password" : "asd100","method" : "AES-256-CFB","protocol" : "auth_sha1_v4","protocolparam" : "","obfs" : "tls1.2_ticket_auth","obfsparam" : "","remarks_base64" : "6Iux5Zu9Mg==","group" : "『飞牛』节点","enable" : "true","udp_over_tcp" : "false"
}]'''
#将json文本字符串转换为json对象
js = json.loads(j)
#js对象为list数据结构
print(type(js))#将json对象转换为json文本字符串
js1 = json.dumps(js)
#js1为字符串
print(type(js1))
《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT,Word,Excel,Json等文件中相关推荐
- 《崔庆才Python3网络爬虫开发实战教程》学习笔记(3):抓取猫眼电影榜单TOP100电影,并存入Excel表格
本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...
- 《崔庆才Python3网络爬虫开发实战教程》学习笔记(4):解析库Xpath的使用方法总结
本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...
- 崔庆才《Python3网络爬虫开发实战》学习笔记-前言
电子书籍在线阅读 京东购买链接
- 《python3网络爬虫开发实战》学习笔记:pc与安卓代理证书都安装好但是无法监听——记自己的踩坑路径
设备版本:window:win7旗舰版.python版本:python3.7.0.pycahrm版本:PyCharm Community Edition 2019.3.3 x64. 手机:红米pro. ...
- 《Python3网络爬虫开发实战》学习笔记_P2
- 《Python3网络爬虫开发实战》学习笔记_P1
- Python网络爬虫数据采集实战(八):Scrapy框架爬取QQ音乐存入MongoDB
通过前七章的学习,相信大家对整个爬虫有了一个比较全貌的了解 ,其中分别涉及四个案例:静态网页爬取.动态Ajax网页爬取.Selenium浏览器模拟爬取和Fillder今日头条app爬取,基本涵盖了爬虫 ...
- 【SQL开发实战技巧】系列(七):从有重复数据前提下如何比较出两个表中的差异数据及对应条数聊起
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- 爬虫学习笔记-猫眼电影排行爬取
爬虫学习笔记-猫眼电影排行爬取 1 分析页面 https://maoyan.com/board/4 点击页码发现页面的URL变成: 初步推断出offset是一个偏移量的参数,当页面为第一页时offse ...
最新文章
- Hadoop通过路径和和链接访问HDFS
- CTF web题总结--php函数漏洞
- adguard没有核心 core no_Spring 核心组件原理解析
- java写小游戏代码可复制
- LABVIEW详细介绍:LABVIEW是什么软件?都可以干什么?
- flutter 使用阿里图标
- 【方法】如何提高专注能力
- 体系结构复习2——指令级并行(分支预测和VLIW)
- ubuntu系统下载路径(可以收藏免得以后再找)
- 几何光学学习笔记(28)-6.3光照度和光出射度
- antd走马灯组件自定义前进后退按钮
- 哪款蓝牙耳机品质好?音质好的四款蓝牙耳机测评
- 卧槽,javaCV不到十行代码实现图片OCR文字识别
- 网页复制内容修改(解决复制文本多空格问题,带标注信息(如版权信息))
- Linux input子系统上报键值失败问题
- Banner轮播图片实践
- Android : TextView
- Python图像锐化及边缘检测(Roberts、Prewitt、Sobel、Lapllacian、Canny、LOG)
- MATLAB的常用的三角函数 计算函数
- Java实现RSA分段加密解密
热门文章
- CHIL-SQL-JOIN
- 力扣算法学习计划打卡:第六天
- 抖音短视频企业团队SOP策划运营工作计划表格
- QPainter 保存自绘制为图片
- linux smit工具,linux安全基础 SMIT入门(4)
- 【如何3秒钟看出一个人的python实力|Python 数据分析打怪升级之路 day04】:手把手教你如何分析用户数据、数据分析基本概念
- 登录中国专利电子申请网的正确姿势
- 吉林大学软件学院2021级计算机组成原理期末50道简答题
- 史上最大规模世界杯直播 阿里云承包了全网70%的流量
- 多点视频监控业务如何通过EasyCVR实现视频流的转码、分发、汇总和存储?