【发布时间】:2018-04-22 02:13:54
【问题描述】:
我开始在 scrapy 中使用项目加载器,基本功能运行良好,如下所示:
l.add_xpath('course_title', '//*[@class="course-header-ng__main-info__name__title"]//text()')
但是如果我想对这个项目应用一个函数,我在哪里定义函数呢?
关于this的问题有一个例子:
from scrapy.loader.processors import Compose, MapCompose, Join, TakeFirst
clean_text = Compose(MapCompose(lambda v: v.strip()), Join())
to_int = Compose(TakeFirst(), int)
class MyItemLoader(ItemLoader):
default_item_class = MyItem
full_name_out = clean_text
bio_out = clean_text
age_out = to_int
weight_out = to_int
height_out = to_int
这是代替自定义模板吗?:
import scrapy
class MoocsItem(scrapy.Item):
# define the fields for your item here like:
description = scrapy.Field()
course_title = scrapy.Field()
我可以使用一个衬里的函数吗?
clean_text = Compose(MapCompose(lambda v: v.strip()), Join())
【问题讨论】:
-
你将把它分配给你创建的加载器,stackoverflow.com/questions/46619150/…
标签: python web-scraping scrapy