zoukankan      html  css  js  c++  java
  • scrapy_对传到items的值预处理

    如何实现对值进行预处理? 

      对于传递进items的值,首先明白有两个动作,,那就可以分别对这两个动作进行逻辑处理 

    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    
    __author__ = 'beimenchuixue'
    __blog__ = 'http://www.cnblogs.com/2bjiujiu/'
    
    import hashlib
    import scrapy
    import re
    from w3lib.html import remove_tags
    from scrapy.loader import ItemLoader
    from scrapy.loader.processors import TakeFirst, Join, MapCompose
    from tools.shared import get_md5, go_remove_tag
    
    
    class AllItemLoader(ItemLoader):
        """
        通过自定义itemloader要求都取列表中第一个值
        """
        default_output_processor = TakeFirst()
    
    
    def get_md5(url):
        """对获取的URL进行md5"""
        m = hashlib.md5()
        m.update(bytes(url, encoding='utf-8'))
        return m.hexdigest()
    
    
    # 把对应的内容,去掉标签、空格、空行
    def go_remove_tag(value):
        content = remove_tags(value)
        return re.sub(r'[	
    s]', '', content)
    
    
    def comeback(value):
        """啥也不干,直接返回"""
        return value
    
    
    class ENet(scrapy.Item):
        article_id = scrapy.Field(
            # 进来的值预处理
            input_processor=MapCompose(get_md5)
        )
        article_url = scrapy.Field()
        title = scrapy.Field()
        content = scrapy.Field(
            input_processor=MapCompose(go_remove_tag),
            # 从items出去的值进行拼接处理
            output_processor=Join('')
        )
        publish_time = scrapy.Field()
        come_form = scrapy.Field(
            # 获得结果还是列表
            output_processor=MapCompose(comeback)
        )
        
    

      input_processor     进 处理

      output_processor     出 处理

      MapCompose        绑定处理函数

      Join                               进行拼接

      TakeFirst         出,取列表第一个值

    items如何把spider中解析到的值进行处理?

      spider中获得的是存放在列表中,而传入绑定函数中是按顺序一个一个分别传入处理函数进行处理

  • 相关阅读:
    awk 字符串连接操作(字符串转数字,数字转字符串)
    Jenkins配置自动发送邮件,成功!
    可嵌入到网页的实用查询代码
    Windows中打开和关闭FSO文件读写权限的方法
    网站项目模型及业务流程分析
    2个JS版的MD5加密脚本
    申请@msn.com的邮箱最新网址
    成功激励格言精选
    随机切换广告图片
    译自MSDN非常详细的IMG,IFRAME的属性参考手册
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/7237446.html
Copyright © 2011-2022 走看看