• scrapy 框架持久化存储的三个方法 存入 mysql 文件 redis


    这里就不做详细讲解了 毕竟不是一句两句能说的清楚,所以我把代码和注释放到了这里 谢谢!

    import pymysql
    from redis import Redis
    # 写入mysql
    class WangyiMysql(object):
        conn = None
        cursor = None
        def open_spider(self,spider):
            self.conn = pymysql.Connection(host='127.0.0.1',port=3306,user='root',password='',db='spider',charset='utf8')
            print(self.conn)
        def process_item(self, item, spider):
            sql = 'insert into news values ("%s","%s")'%(item['title'],item['content'])
            self.cursor = self.conn.cursor()
    
            try:
                self.cursor.execute(sql)
                self.conn.commit()
            except Exception as e:
                print(e)
                self.conn.rollback()
            return item
    
        def close_spider(self,spider):
            self.cursor.close()
            self.conn.close()
    
    # 写入redis
    class WangyiRedis(object):
        conn = None
        def open_spider(self,spider):
            self.conn = Redis(host='127.0.0.1',port=6379)
            print(self.conn)
    
        def process_item(self, item, spider):
            self.conn.lpush('news',item)
    
    # 写入文件
    class ChoutiproPipeline(object):
        #重写父类方法,该方法只会被执行一次
        fp = None
        def open_spider(self,spider):
            print('开始爬虫......')
            self.fp = open('chouti.txt','w',encoding='utf-8')
    
        #该方法调用后就可以接受爬虫类提交过来的item对象,且赋值给了item参数
        def process_item(self, item, spider):
            author = item['title']
            content = item['content']
            self.fp.write(author+':'+content+'
    ')
    
            return item #将item传递给下一个即将被执行的管道类
    
        def close_spider(self,spider):
            # print('爬虫结束!')
            self.fp.close()
    

      如果 你要这三项同时执行的话,记得在setings 里面 配置一下这个

        ITEM_PIPELINES = {
        'first_blod.pipelines.FirstBlodPipeline': 300,
        'first_blod.pipelines.MysqlPileLine': 301,
       # 记得写类名,哪个执行写哪个 }
  • 相关阅读:
    爬虫工程师分享:三步就搞定 Android 逆向
    爬虫工程师常用的 Chrome 插件
    Python 描述符(Descriptor) 附实例
    爬虫必备:Python 执行 JS 代码 —— PyExecJS、PyV8、Js2Py
    京东白条
    中国金融贷款整理
    接口文档管理工具YApi内网服务器搭建过程
    AWS申请图文及连接教程
    金融
    centos jdk 1.7升级到1.8后显示还是1.7
  • 原文地址:https://www.cnblogs.com/well-666/p/11679258.html
Copyright © 2020-2023  润新知