Я новичок в python и scrapy и следую руководству по dmoz. В качестве незначительного варианта предлагаемого начального URL-адреса учебника я выбрал японскую категорию на образце сайта dmoz и заметил, что экспорт фида, который я в итоге получаю, показывает числовые значения Юникода вместо реальных японских символов.
Кажется, мне нужно как-то использовать TextResponse , но я не уверен, как заставить моего паука использовать этот объект вместо базового объекта Response.
- Как мне изменить мой код, чтобы отображать японские символы в моем выводе?
- Как мне избавиться от квадратных скобок, одинарных кавычек и 'u', которые обертывают мои выходные значения?
В конечном счете, я хочу получить вывод, скажем
オ ン ラ イ ン シ ョ ッ プ (это японские символы)
вместо токового выхода
[u 'u30aa \ u30e9 \ u30a4 \ u30f3 \ u30b7 \ u30c3 \ u30d7'] (Unicodes)
Если вы посмотрите на мой скриншот, он соответствует ячейке 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 для размещения изображений)