我是一个Python和Scrapy的新手,我正在按照dmoz教程学习。作为教程建议的起始URL的微小变体,我选择了dmoz示例站点中的一个日本类别,并注意到最终得到的feed导出显示unicode数值而不是实际的日本字符。
看起来我需要以某种方式使用TextResponse,但我不确定如何让我的爬虫使用该对象而不是基本的Response对象。
- 我应该如何修改代码以在输出中显示日语字符?
- 如何摆脱方括号、单引号和包装输出值的'u'?
最终,我想要一个输出,比如说:
オンラインショップ(这些是日语字符)
而不是当前的输出:
[u'\u30aa\u30f3\u30e9\u30a4\u30f3\u30b7\u30e7\u30c3\u30d7'](Unicode)
如果您查看我的截图,它对应于文本标题之一的C7单元格。
以下是我的爬虫(与教程中的相同,除了不同的start_url):
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from dmoz.items import DmozItem
class DmozSpider(BaseSpider):
name = "dmoz.org"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/World/Japanese/"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//ul/li')
items = []
for site in sites:
item = DmozItem()
item['title'] = site.select('a/text()').extract()
item['link'] = site.select('a/@href').extract()
item['desc'] = site.select('text()').extract()
items.append(item)
return items
settings.py:
FEED_URI = 'items.csv'
FEED_FORMAT = 'csv'
输出截图: http://i55.tinypic.com/eplwlj.png(抱歉,我还没有足够的SO积分来发布图片)