【发布时间】:2015-10-18 05:22:53
【问题描述】:
根据 Scrapy 结果,标题中有一个不需要的非 ASCII 代码 \u2013(又名 character(150) 或 en dash),例如 u'Director/Senior Director \u2013 Pathology'。我正在尝试使用管道通过常规的, 删除\u2013。但是下面的代码不起作用。也不会报错。
from datetime import datetime
from hashlib import md5
from scrapy.exceptions import DropItem
from twisted.enterprise import adbapi
import re
import string
class ReplaceASC2InTitlePipeline(object):
"""replace unwanted ASCII characters in titles"""
ascii_to_filter = ["\u2013",]
def process_item(self, item, spider):
for word in self.ascii_to_filter:
desc = item.get('title')
if (desc) and word in desc:
spider.log("\u2013 in '%s' was replace" % (item['title']) )
item['title']=item['title'].replace("\u2013", ",")
return item
else:
return item
【问题讨论】:
-
我对 else 部分感到困惑。如果它是一个 for...else 子句,通常会有一个 for 块的中断。还是缩进错了?
-
该代码是根据我在 Github 上找到的一些代码修改的,这些代码用于丢弃不需要的项目。但我对 Python 没有太多经验。