from scrapy.contrib.loader import ItemLoader---------工具类(ItemLoader)----用于规范化爬取数据
以下是一个典型的ItemLoader的用法
I = ItemLoader(item=ItemLoader,response=response)
I.add_xpath(字段名,xpath表达式)
I.add_css(字段名,css表达式)
I.add_value(字段名,固定值)
............
return I.load_item()
注意:1 l.add_xpath('name', '//div[@class="product_name"]')
l.add_xpath('name', '//div[@class="product_title"]')
ItemLoader支持同一个字段从不同xpath位置提取,之后分配给item中对应的字段。
一些结合数据,数据格式化,数据清洗的方式:---处理器
from scrapy.loader.processors import Mapcompose,join
Join():把多个结果链接在一起
mapcompose()---引入Python中的一些函数。
Mapcompose(unicode.strip)---删除首尾的空白符
Mapcompose(unicode.strip,unicode.title)---删除首尾的空白符,且是结果按照标题格式
Mapcompose(float)-----把字符串转化为数值
Mapcompose(lambda i:i.replace(',',' '),float)----把字符串转化为数值,且忽略可能存在的‘,’字符。即对内容进行更改。
Mapcompose(lambda i:urlparse.urljoin(response.url,i)):---将url相对路径转化为绝对路径。
完整表达式:
i.add_xpath(字段名,xpath方法,处理器)