1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT

《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT

时间:2021-11-03 19:08:21

相关推荐

《崔庆才Python3网络爬虫开发实战教程》学习笔记(5):将爬虫爬取到的数据存储到TXT

本篇博文是自己在学习崔庆才的《Python3网络爬虫开发实战教程》的学习笔记系列,此套教程共5章,加起来共有34节课,内容非常详细丰富!如果你也要这套视频教程的话,关注我公众号【小众技术】,关注后回复【PYTHON】,无套路免费送你一个学习大礼包,包括爬虫视频和电子书~

------------------------------------------------------------------华丽分割线----------------------------------------------------------------------------------------------------

数据的存储是爬虫开发中一个很重要的环节,而存储的形式也分为很多种,大体来说分为两种。一种是将爬取到的数据储存到文件中,另一种就是将数据直接存储到数据库中。两种形式各有各的优点。

今天我就总结一下如何将爬取到的数据存储到TXT,Word,Excel,Json等文件中。其实这些方法大同小异,原理都差不多,只不过是分别运用了不同的库函数,使用的不同的方法而已。

1.将数据存储到TXT文件中

存到TXT文件是最简单也是最好理解的,主要是用到了open函数。接下来我就用一个小例子给大家演示一下吧。我会爬取一下知乎()发现页面推荐的几个问题,将标题,答主,答案存储到一个TXT文件中,每个问题用“=”来隔开。废话话不多说,直接上代码讲解!

import requests,docxfrom 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 = '/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,docxfrom 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 = '/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')#存储到Worddef 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" : 6,"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等文件中

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。