确定从 xpath 中抓取的内容的编码。转换为 unicode

determine encoding of content scraped from xpath. convert to unicode

我使用 firefox xpath 提取器从该网站提取了以下片段:http://www.zdic.net/z/19/js/5DCD.htm

我要找的部分是丨フ丨ノ一丨ノ丶フノ一ノ丨フ一一ノフフ丶

xpath extractor add on 为我提供了以下 id('z_i_t2_bis')

我使用以下命令将其输入 scrapy shellresponse.selector.xpath("id('z_i_t2_bis')").extract()

它返回了这个:

[u'<span id="z_i_t2_bis" title="\u7ad6\u6298\u7ad6\u6487\u6a2a\u7ad6\u6487\u637a\u6298\u6487\u6a2a\u6487\u7ad6\u6298\u6a2a\u6a2a\u6487\u6298\u6298\u637a">\u4e28\u30d5\u4e28\u30ce\u4e00\u4e28\u30ce\u4e36\u30d5\u30ce\u4e00\u30ce\u4e28\u30d5\u4e00\u4e00\u30ce\u30d5\u30d5\u4e36</span>']

我怎么知道这是否是我想要的?

它似乎是为 HTML 编码的,有没有办法将其恢复为 unicode?

已经是unicode了。这只是一个逃脱的代表。 因此,您可以使用 'in' 运算符直接检查您的模式:

pattern = u'丨フ丨ノ一丨ノ丶フノ一ノ丨フ一一ノフフ丶'
result = [u'<span id="z_i_t2_bis" title="\u7ad6\u6298\u7ad6\u6487\u6a2a\u7ad6\u6487\u637a\u6298\u6487\u6a2a\u6487\u7ad6\u6298\u6a2a\u6a2a\u6487\u6298\u6298\u637a">\u4e28\u30d5\u4e28\u30ce\u4e00\u4e28\u30ce\u4e36\u30d5\u30ce\u4e00\u30ce\u4e28\u30d5\u4e00\u4e00\u30ce\u30d5\u30d5\u4e36</span>']

if pattern in result[0]:
    print('found')