scrapy_ItemLoader
什么是Itemloader?
一种容器,实现直白高效字段提取
直接赋值取值的方式,会出现一下几个问题
- 代码量一多,各种css和xpath选择器,充斥整个代码逻辑,没有规则,不利于维护
- 对于一个字段的预处理,不明确,也不应该出现在主逻辑中
如何解决以上两个问题?
通过scrapy中的ItemLoader模块来处理
那如何使用呢?
1. 声明一个容器
2. 往容器中添加值
3. 加载容器
4. 把值传yield给 items
def analysie_go(self, response):
"""解析页面,提取字段值"""
# 通过response.meta.get方式获取meta传过来的值
img_url = response.meta.get('img_url', '0')
# 声明一个容器,接收item实例和response参数
load_item = ItemLoader(item=JobboleItem(), response=response)
# 指定value添加值
load_item.add_value('img_url', img_url)
load_item.add_value('cont_url', response.url)
load_item.add_value('cont_id', response.url)
# css方式解析值
load_item.add_css('title', '.entry-header h1::text')
load_item.add_css('publish_time', '.entry-meta-hide-on-mobile::text')
# xpath解析值
load_item.add_xpath('cont', '//div[@class="entry"]//text()')
load_item.add_css('link_num', '.vote-post-up h10::text')
load_item.add_css('collection_num', '.bookmark-btn::text')
load_item.add_css('comment_num', '.post-adds a span::text')
# 加载load_item()
article_items = load_item.load_item()
# 把获取的字段交给items
yield article_items
scrapy_ItemLoader的更多相关文章
随机推荐
- 【zkw费用流】[网络流24题]餐巾计划问题
题目描述 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,-,N).餐厅可以从三种途径获得餐巾. (1)购买新的餐巾,每块需p分: (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f ...
- linux下安装ffmpeg
1. 首先安装系统编译环境 yum install -y automake autoconf libtool gcc gcc-c++ #CentOS 2. 编译所需源码包 #yasm:汇编器,新版 ...
- 学习总结:工程管理与makefile
工程管理与makefile 一.为什么需要makefile和make 一个工程中的源文件可能很多,按照类型.功能.模块分别放在若干个目录中,为了有效地管理软件工程,更高效地编译整个工程,需要用到mak ...
- python 虚拟环境--virtualenv
virtualenv 是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包. 安装方式一: pip install v ...
- ConstraintLayout知识记录
一.准备工作 1. 确保SDK Tools已经下载了ContraintLayout的支持库. 2. gradle中增加对ConstraintLayout的依赖. compile 'com.andr ...
- 自定义注解,andjdk提供的元注解
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface FruitN ...
- vue-router 组件复用问题
组件系统是Vue的一个重要组成部分,它可以将一个复杂的页面抽象分解成许多小型.独立.可复用的组件,通过组合组件来组成应用程序,结合vue-router的路由功能将各个组件映射到相应的路由上,通过路由的 ...
- bzoj:1687;poj 2434:[Usaco2005 Open]Navigating the City 城市交通
Description A dip in the milk market has forced the cows to move to the city. The only employment av ...
- BOX
题目连接:http://acm.tju.edu.cn/toj/showp2392.html2392. Box Time Limit: 1.0 Seconds Memory Limit: 655 ...
- [国嵌笔记][030][U-Boot工作流程分析]
uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk244 ...