【Python】Scrapy ItemLoader 处理空列表让数据库字段为空值

问题描述

我需要爬取某些招聘网页上的信息,但不是所有招聘网页中展示的信息都一样,例如有些网页上并没有附上公司网址,而如果没有需要在数据库相应的字段中赋值为空。

方法一:不使用itemLoader

使用extract_first()取得列表第一个元素,默认值为‘’,但这不适用列表中有多个元素,比如不止爬取一个标签

def parse_detail(self, response):
        article_item = JobBoleArticleItem()
        tag_list = response.css("p.entry-meta-hide-on-mobile a::text").extract_first('')

使用extract()能取得整个列表,但需要再做进一步处理,list类型无法插入数据库

tag_list = response.css("p.entry-meta-hide-on-mobile a::text").extract()
if not tag_list:
	tag_list.append('')
	return tag_list[0]

方法二:使用ItemLoader

推荐使用ItemLoader

    def parse_job(self, response):
        item_loader = ShixiJobItemLoader(item=ShixiJobItem(), response=response)
        item_loader.add_css("job
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值