问题描述
我需要爬取某些招聘网页上的信息,但不是所有招聘网页中展示的信息都一样,例如有些网页上并没有附上公司网址,而如果没有需要在数据库相应的字段中赋值为空。
方法一:不使用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