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的更多相关文章
随机推荐
- 再见乱码:5分钟读懂MySQL字符集设置
一.内容概述 在MySQL的使用过程中,了解字符集.字符序的概念,以及不同设置对数据存储.比较的影响非常重要.不少同学在日常工作中遇到的"乱码"问题,很有可能就是因为对字符集与字符 ...
- Java学习笔记24(Integer类)
这里介绍基本数据类型包装类,Integer是int的包装类, 其他的基本数据类型的包装类的方法和Integer的方法几乎一致,会一种即可全会 基本数据类型包装类的特点:用于在基本数据类型和字符串之间进 ...
- Java集合系列[1]----ArrayList源码分析
本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组.数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间用来进行元素的存储,由于它直接操作内存,所以数组的性能要比集 ...
- Centos上安装jdk版本出错的问题
今天买了个阿里云的服务器,于是手动安装了一遍JavaWeb运行环境,首先安装jdk与配置jdk就遇到了问题. 我下载的是解压版的jdk-8u151-linux-i586.tar.gz.安装和配置到是蛮 ...
- Vijos-P1057题解
题目如下: https://www.vijos.org/p/1057 思路分析: 输入文件第一行为两个整数n,m(1<=n,m<=1000),接下来n行,每行m个数字,用空格隔开.0表示该 ...
- windows server,nginx安装,配置,运行nodeJS后端的web项目的实现,以及错误分析及解决方法
一.安装nginx 下载windows版nginx (http://nginx.org/download/nginx-1.12.2.zip),之后解压到需要放置的位置(C:\nginx) 二.将Ngi ...
- Asp.net Mvc 与 Web Api生命周期对比
完整的生命周期比较复杂,对细节感兴趣的同学可购买老A的图书学习:传送门 本文只简单讲述路由注册.controller创建.action选择的3个主逻辑线,其他的内容大家可自己阅读相应的代码 先上二者单 ...
- Luogu P1231 教辅的组成
Luogu P1231 教辅的组成 题目背景 滚粗了的HansBug在收拾旧语文书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本语文书里面发现了一本答案,然而他却明明记得这书应该还 ...
- 开发 | 小程序wx.setScreenBrightness/wx.getScreenBrightness接口测试
前言 最近接触了微信小程序 API - wx.setScreenBrightness .wx.getScreenBrightness 接口,调用该接口可以调节并显示手机屏幕亮度数据.对于喜欢腾讯新闻. ...
- COGS 862. 二进制数01串【dp+经典二分+字符串】
862. 二进制数01串 ★ 输入文件:kimbits.in 输出文件:kimbits.out 简单对比 时间限制:1 s 内存限制:128 MB USACO/kimbits(译 by ...