美文网首页
item load 机制

item load 机制

作者: eleksbai | 来源:发表于2017-10-02 14:42 被阅读0次

将抓取数据解析进行结构化:

基础方法:  

spider:  获取网页页面response 》 选择器提取内容  》 对内容进行处理 》传递给item字段

使用加载机制:

spider:

spider:获取网页页面response 》 加载器提取内容(使用选择器)  》 传递给item处理

item:定义item对象的同时并配置内容处理函数 》处理1 》处理2》最终赋值

加载器数据提取方法:

spider:

from scrapy.loader import ItemLoader #导入模块,基本用法,实际使用自定义复写

item_loader= ItemLoader(item=XxxItem(),response=response)#实例化,传入item实例对象,response对象)

#三个核心函数,参数item字段名,选择器方法或其他值,生成一个列表对象
item_loader.add_css("title",".entry h1::text")

item_loader.add_xpath("title",'//div/a[id="555"]/text()')

item_loader.add_value("url", response.url)

my_item = item_loader.laod_item()

yield my_item 

item:

item 的字段对象有两个参数:

input_processor = MapCompose()# 表示对传递给item字段的值做一个预处理,使用内置的MapCompose,按函数顺序对传递进来的列表的每个值进行处理(可使用匿名函数)

output_processor = TakeFirst() #对预处理玩的值进行输出到item容器,使用内置函数:获取列表的第一个值

重载 itemload方法:来配置默认获取列表第一个值,定义一空函数来替换默认配置

from scrapy.loader.processors import MapCompose ,TakeFirst

from scrapy.loader import ItemLoader 

def func1(value):

return value

def ret(value)

returnvalue

class MyItemLoaderl(ItemLoaderL):

default_output_processor =  TakeFirst()

class CrawlItem(scrapy.Item):

title = scrapy.Field(

input_processor=Mapcomppose( func1, func2)

output_processor =  ret()  #重载自定义loaderItem的默认方法,获取原始列表

)

相关文章

  • item load 机制

    将抓取数据解析进行结构化: 基础方法: spider: 获取网页页面response 》 选择器提取内容 》 对...

  • 图片高斯模糊效果

    // Glide.with(context).load(item.getUrl()....

  • Python Scrapy 爬虫教程之对象加载器 Item Lo

    Item Loaders 对象加载器 Item Loaders 为当下流行的爬取 item 提供一个便捷的机制,也...

  • load 与 initialize

    load load 加载方式是通过函数地址直接调用的,不是通过消息发送机制调用 load 是在main函数调用之前...

  • Glide源码分析

    一、源码分析:1、with()2、load()3、into()二、缓存机制1、Glide缓存机制简介1.1缓存的图...

  • ITEM 20: 优先使用接口,而不是抽象类

    ITEM 20: PREFER INTERFACES TO ABSTRACT CLASSES  Java有两种机制...

  • ListView总结

    复用机制 listview 的item会创建至少是一屏幕可显示的数量,新的item会复用之前的旧item,大大提高...

  • load和initialize的区别

    调用机制 load方法的本质:直接执行函数指针 load方法是在运行时被执行的(main函数之前),其调用栈如下 ...

  • load & initialize

    load 在当前程序通过dyld(动态链接器)机制被加载到内存并执行到_objc_init的时候就会执行load函...

  • 『ios』你以为的+load和底层的+load

    我们都知道+load方法.你是不是以为+load方法的底层也是消息发送机制,通过objc_msgSend来调用?你...

网友评论

      本文标题:item load 机制

      本文链接:https://www.haomeiwen.com/subject/ppnzextx.html