gpt4 book ai didi

python - Scrapy 输出提要国际 unicode 字符(例如日语字符)

转载 作者:太空狗 更新时间:2023-10-29 21:59:01 25 4
gpt4 key购买 nike

我是 python 和 scrapy 的新手,我正在学习 dmoz 教程。作为教程建议的开始 URL 的一个小变体,我从 dmoz 示例站点中选择了一个日语类别,并注意到我最终获得的提要导出显示了 unicode 数值而不是实际的日语字符。

看来我需要使用 TextResponse不知何故,但我不确定如何让我的蜘蛛使用该对象而不是基本 Response 对象。

  1. 我应该如何修改我的代码以在我的输出中显示日语字符?
  2. 如何去掉方括号、单引号和包装输出值的“u”?

最终,我想要输出 say

オンラインシェップ(这些是日文字符)

代替

的当前输出

[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

设置.py:

FEED_URI = 'items.csv'
FEED_FORMAT = 'csv'

输出截图: http://i55.tinypic.com/eplwlj.png (抱歉,我还没有足够的 SO 积分来发布图片)

最佳答案

当您从页面中抓取文本时,它以 Unicode 格式存储。

您要做的是将其编码为类似于 UTF8 的格式。

unicode_string.encode('utf-8')

此外,当您使用选择器提取文本时,即使只有一个结果,它也会存储在列表中,因此您需要选择第一个元素。

关于python - Scrapy 输出提要国际 unicode 字符(例如日语字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com