【学习打卡】第10天 Scrapy打造搜索引擎 items数据写入json文件中
2022/8/16 3:22:56
本文主要是介绍【学习打卡】第10天 Scrapy打造搜索引擎 items数据写入json文件中,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Scrapy打造搜索引擎(分布式爬虫)
课程章节:items数据写入json文件中
主讲老师:bobby
课程内容:
今天学习的内容包括:items数据写入json文件中
课程收获:
1.items数据写入json文件
1.代码
# 自定义json文件的导出 class JsonWithEncodingPipeline: def __init__(self): # "a"——表示数据以追加的方式写入 "w"——每次写入都会抹除之前的数据 self.file = codecs.open("article.json", "a", encoding="utf-8") def process_item(self, item, spider): # 注:def process_item(self, item, spider)方法名参数必须按照此方式写,否则scrapy找不到 lines = json.dumps(dict(item), ensure_ascii=False) + "\n" self.file.write(lines) return item def spider_closed(self, spider): # 爬虫结束自动调用 self.file.close()
2.setting.py中配置JsonWithEncodingPipeline管道
3.运行截图(写入article.json数据)
2.使用scrapy中自带的pipeline
1.代码
# 使用scrapy自带的方式导出数据 class JsonExporterPipeline: def __init__(self): # 文件打开 'wb'——表示以二进制的方式打开 self.file = open('article_exporter.json', 'wb') self.exporter = JsonItemExporter(self.file, encoding="utf-8", ensure_ascii=False) self.exporter.start_exporting() def process_item(self, item, spider): self.exporter.export_item(item) return item def spider_closed(self, spider): # 爬虫结束自动调用 self.exporter.finish_exporting() self.file.close()
2.代码截图
3.运行截图article_exporter.json
3.问题:article.json每次只写入一行数据
post_node.xpath开始以后就要是相对路径——.//h2[@class='news_entry']/a/@href
1.for post_node in post_nodes每次for循环得到的post_url和image_url都相同
2.原因
post_node.xpath开始以后就要是相对路径——.//h2[@class='news_entry']/a/@href
1.如果写成xpath('//*') //开头的就会从整个url开头找起
2.必须写成.//
这篇关于【学习打卡】第10天 Scrapy打造搜索引擎 items数据写入json文件中的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25Vue3学习:从入门到初步掌握
- 2024-12-25Vue3入门:新手必读的简单教程
- 2024-12-23【JS逆向百例】爱疯官网登录逆向分析
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程