每个表情符号由一组代码元素,一个名称和一组关键字组成 。 如果平台不支持特定的表情符号,则该平台的框中将出现一个破折号 。
我采用的方法是使用BeautifulSoup并解析出本文档中我关心的所有元素。
html = urllib2.urlopen('http://unicode.org/emoji/charts/full-emoji-list.html').read()
汤= BeautifulSoup(html,“ lxml”)
表格= soup.findAll('table')
提取表后,我遍历每一行以检查它是标题行还是数据行
对于表中的表:
行= table.findAll('tr')
对于 tr行:
cols = tr.findAll(['th','td'])
#提取原始unicode字符串-基本上将其转换为python可打印的内容
raw_code_string = str(cols [1] .text)
如果 raw_code_string == u'Code':
#跳过标题行
继续
数据行将是第二列中没有单词Code的行。 接下来,我们需要验证该行本身实际上是否包含苹果数据
- 向您的演示文稿介绍为什么而不是什么
- 使用SharePoint警报掌握一切
- Gooba 2.5在App Store上可用,具有适用于iPad的新UI和新的Creator模式
- 招聘人员排名前四的生产力工具
- 情绪传染-为什么要小心周围的人
#苹果专栏-如果这里没有数据,我们可能不在乎表情符号,因为它不在osx中
苹果= cols [4] .text
#忽略非苹果unicode
如果苹果!= u'':
继续
一旦我们确定了专栏是好的,那么乐趣就开始了
基本上有3种情况要处理。 第一种简单的情况是项目具有简单名称,例如:MOUTH或TONGUE。

第二种情况是别名情况,其中项目同时具有名称和别名。 这主要出现在肤色情况下,其中项目的大写名称为“ REVERSED HAND WIHT MIDDLE FINGER EXTENDED ”,别名为“ 中指 ”。 再次引用该项目时,将使用别名文本和类型说明符对其进行引用。

在这些情况下,我们将存储以下数据:
- 带有中指的反手
- 中指
- 带有中指扩展型5的反转手
- 中指5型
最终,这4个项目将用作搜索词,并与该条目的任何关键字配对。 解析步骤还将继续,并创建要在Alfred中显示的图标。 足够方便的是,此HUGE文件将原始PNG数据嵌入到表格元素中,因此可以这样编写它们:
img_data = base64.b64decode(cols [4] .contents [0] .attrs ['src']。split(',')[1])
使用 open(“ img /” + str(number)+'.png','wb') 为 f:
f.write(img_data)
一旦所有解析完成,我最终得到一个名为emoji.csv的文件,它将成为我们用于实际表情符号搜索脚本的源数据。
汇集全部
组装好buildDataFiles.py脚本后,我添加了一些通知调用,这些通知将在运行时向用户发出通知-并创建一个Alfred关键字来启动它的初始表情符号
让我们搜索一些表情符号!
现在我们有一些数据可以搜索了。 搜索脚本非常简单。 emoji.csv的布局如下:

包含图像文件名,表情符号名称 ,表情符号,表情符号的unicode和一组关键字的列表 。
工作流的目标是允许用户按名称或关键字搜索,然后按名称匹配顺序显示结果。 她的工作方式是:
将 open('emoji.csv') 设为 f:
对于 f中的行:
img,名称,代码,raw_code,关键字= line.strip()。split(',')
如果 在 name.lower()中查询:
name_match.append([img,name,raw_code,keywords])
关键字中的elif查询:
keyword_match.append([img,name,raw_code,keywords])
对于 name_match + keyword_match中的数组:
img,标题,raw_code,subtile =数组
wf.add_item(title,subtitle = subtile,
icon =“ img /” + img,
arg = raw_code.decode('unicode_escape'),
有效=真)
可在此处找到工作流程:Alfred Taco🌮
源代码位于:
空姐/ EmojiTaco
EmojiTaco –带Taco和其他unicode 9 emoji的Alfred Emoji脚本 github.com
Unicode数据位于
完整的表情符号数据,v3.0
该图表提供了Unicode表情符号字符列表,以及来自不同供应商,版本和来源的图像 。unicode.org