我想从网站上获取一些文本,对其进行标记并返回文本中所有单词的有序列表。除了排序之外我能做的一切。我想可以使用项目中字段的输出处理器(ItemLoader)来完成,但我无法使其工作。 这是代码:
from scrapy.contrib.loader import ItemLoader
from scrapy.contrib.loader.processor import TakeFirst, MapCompose, Join
from w3lib.html import replace_escape_chars, remove_tags
from nltk.corpus import stopwords
import string
from newsScrapy.items import NewsItem
class NewsLoader (ItemLoader):
def filterStopWords(x):
return None if x in stopwords.words('english') or x=='' else x
default_item_class = NewsItem
body_in = MapCompose(lambda v: v.split(), lambda v: v.strip(string.punctuation).strip(), lambda v: v.lower(), filterStopWords, replace_escape_chars)
'''字段从网站获取报废数据,它被标记化并且标点符号与其他次要任务一起被删除。有了它,它返回一个单词列表。我只想对那份清单进行排序。 非常感谢!
答案 0 :(得分:0)
我终于通过带有
的ItemPipeline完成了它def process_item(self, item, spider):
return sorted(item['body'])