zoukankan      html  css  js  c++  java
  • scrapy-pipeline,mysql

    scrapy中多个pipeline作用:

    一个项目可能需要爬取多个网站,根据每个网站的数据量(处理方式)不同,可创建多个管道 pipeline

    class SpideranythingPipeline(object):
        def process_item(self, item, spider):
            if spider.name == 'itcast':  # spider为爬虫实例  itcast是爬虫的名字,, 由此可区分多个爬虫
                print(item)
                return item

    pipeline的方法

    mysql

    class SpiderSuningBookPipeline(object):
        def process_item(self, item, spider):
            # collection.insert(dict(item))
            sql = """
                insert into book(title,author,download_text,new) values('%s','%s','%s','%s')"""
                  %(
                item['title'],
                item['author'],
                item['download_text'],
                item['new']
    )
            print(sql)
            self.cursor.execute(sql)
            return item
    
        def open_spider(self, spider):
            # 连接数据库
            self.connect = pymysql.connect(
            host='127.0.0.1',
            port=3306,
            db='study',
            user='root',
            passwd='123456',
            charset='utf8',
            use_unicode=True)
    
            # 通过cursor执行增删查改
            self.cursor = self.connect.cursor()
            self.connect.autocommit(True)
    
        def close_spider(self, spider):
            self.cursor.close()
            self.connect.close()

    mongodb

    from pymongo import MongoClient
    
    
    class PracticePipeline(object):
        def process_item(self, item, spider):
            ''' 接受爬虫返回的数据 '''
            pass
    
        def open_spider(self, spider):
            ''' 爬虫启动的时候调用 '''
            spider.hello = 'world' # 可以给spider添加属性
            # 初始化数据库连接
            client = MongoClient()
            spider.collection = client['SpiderAnything']['hr']
    
        def close_spider(self, spider):
            ''' 爬虫关闭的时候调用 '''
            pass
  • 相关阅读:
    [BS] 小知识点总结-02
    [BS] 小知识点总结-03
    [BS] 小知识点总结-01
    [BS-12] JSON的基础知识--百科
    [BS-11] 关于RGB/ARGB颜色相关知识
    Mac自定义隐藏或显示文件的快捷键
    iOS开发环境C语言基础
    Objective -C Memory Management 内存管理 第一部分
    Objective-C Foundation 框架 Example :Looking for Files 查找文件
    Objective
  • 原文地址:https://www.cnblogs.com/tangpg/p/10683670.html
Copyright © 2011-2022 走看看