之前我们在scrapy入门使用一节中学习了管道的基本使用,接下来我们深入的学习scrapy管道的使用
1. pipeline中常用的方法:
2. 管道文件的修改
继续完善wangyi爬虫,在 pipelines.py
代码中完善
import json
from pymongo import MongoClient
class WangyiFilePipeline(object):
def open_spider(self, spider):
if spider.name == 'baidu':
self.f = open('json.txt', 'a', encoding='utf-8')
def close_spider(self, spider):
if spider.name == 'baidu':
self.f.close()
def process_item(self, item, spider):
if spider.name == 'baidu':
self.f.write(json.dumps(dict(item), ensure_ascii=False, indent=2) + ',\n')
return item
class WangyiMongoPipeline(object):
def open_spider(self, spider):
if spider.name == 'baidu':
con = MongoClient(host='127.0.0.1', port=27017)
self.collection = con.itcast.teachers
def process_item(self, item, spider):
if spider.name == 'baidu':
self.collection.insert(item)
return item
3. 开启管道
在 settings.py
设置开启 pipeline
......
ITEM_PIPELINES = {
'myspider.pipelines.ItcastFilePipeline': 400,
'myspider.pipelines.ItcastMongoPipeline': 500,
}
......
别忘了开启mongodb数据库 sudo service mongodb start
并在mongodb数据库中查看 mongo
思考:在settings中能够开启多个管道,为什么需要开启多个?
4. pipeline使用注意点
5. 小结
- 管道能够实现数据的清洗和保存,能够定义多个管道实现不同的功能,其中有个三个方法
- process_item(self,item,spider):实现对item数据的处理
- open_spider(self, spider): 在爬虫开启的时候仅执行一次
- close_spider(self, spider): 在爬虫关闭的时候仅执行一次
加油!
感谢!
努力!
Original: https://blog.csdn.net/qq_46092061/article/details/119957314
Author: ZSYL
Title: Scrapy管道(pipeline)的使用
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/789109/
转载文章受原作者版权保护。转载请注明原作者出处!