84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
在items.py中加入:
from scrapy.loader.processors import TakeFirst ...... # 修改为以下内容 followees = Field(output_processor=TakeFirst())
其他的不用改变,在spiders中的代码不需要改变
亟待解决:问题是第二个怎么选以及之后的几个?
认证高级PHP讲师
在 scrapy.loader.processors加个类试试。我是找到TakeFirst类,然后在后面加上
#第二个数据 class TakeSecond(object): def __call__(self, values): for i in range(len(values)): if i == 1 : if values[i] is not None and values[i] != '': return values[i]
然后在item.py中导入TakeSecond使用
name = scrapy.Field( input_processor=MapCompose(remove_tags), output_processor=Join(), ) price = scrapy.Field( input_processor=MapCompose(remove_tags, filter_price), output_processor=TakeSecond(), )
然后运行结果
>>> from scrapy.loader import ItemLoader >>> from tutorial.items import Product >>> il = ItemLoader(item=Product()) >>> il.add_value("price", ['333','444']) >>> il.load_item() {'price': u'444'}
from scrapy.loader.processors import TakeFirst
...... followees = Field(output_processor=Compose(lambda x: x[1:]))
在 scrapy.loader.processors加个类试试。
我是找到TakeFirst类,然后在后面加上
然后在item.py中导入TakeSecond使用
然后运行结果
from scrapy.loader.processors import TakeFirst