[英]Convert string with unicode characters e.g. →,∧,¬ into strings illustrated in latex?
[英]Scrapy output feed international unicode characters (e.g. Japanese chars)
我是python和scrapy的新手,我正在關注dmoz教程。 作為教程建議的起始URL的一個小變體,我從dmoz示例站點中選擇了一個日語類別,並注意到我最終獲得的feed導出顯示的是unicode數值而不是實際的日語字符。
看起來我需要以某種方式使用TextResponse ,但我不知道如何讓我的蜘蛛使用該對象而不是基本的Response對象。
最終,我希望有一個輸出說
オンラインショップ (這些是日本字符)
而不是當前的輸出
[u'\\ u30aa \\ u30f3 \\ u30e9 \\ u30a4 \\ u30f3 \\ u30b7 \\ u30e7 \\ 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點發布圖片)
當您從頁面中刮取文本時,它將以Unicode格式存儲。
你想要做的是將其編碼為類似UTF8的東西。
unicode_string.encode('utf-8')
此外,當您使用選擇器提取文本時,即使只有一個結果,它也會存儲在列表中,因此您需要選擇第一個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.