Back
Featured image of post Python抓取emoji表情和markdown短代码

Python抓取emoji表情和markdown短代码

emoji表情和对应短代码网址: emoji-cheat-sheet

emoji可以简单的理解为打字打不出的 utf8 另类文字, 使用上要么拷贝粘贴, 要么用短代码等方式替代再用程序换成emoji文字.

抓取代码

import requests
from bs4 import BeautifulSoup # conda install  lxml beautifulsoup4

def update_shorcode_emoji_dict():
    # 更新 emoji 短代码
    url = 'https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md'
    r = requests.get(url)
    lines = r.text.split('\n')
    new_lines = []
    '''
    寻找如下的行:
        - 如下字符开头的,包含 emoji: <td align="center"><g-emoji class="g-emoji"
        - 如下字符开头的,包涵短代码: <td><code>
    '''
    
    shortcode_emoji  = dict()
    
    for line in lines:
        if '<td align="center"><g-emoji class="g-emoji"' in line:
            new_lines.append(line.strip())
            '''
            <td align="center"><g-emoji class="g-emoji" alias="tired_face" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f62b.png">😫</g-emoji></td>
            '''
            soup=BeautifulSoup(line,features="lxml")
            col = soup.find('td').find_all('g-emoji')
            emoji_last = col[0].text
    
        if '<td><code>' in line:
            '''<td><code>🇪🇦</code></td>'''
            soup=BeautifulSoup(line,features="lxml")
            col = soup.find('td').find_all('code')
            code_last = col[0].text
            shortcode_emoji[code_last]=emoji_last
    
    print(shortcode_emoji)
    return shortcode_emoji 

可以在处理md文档的脚本中加入替换逻辑, 将短代码替换为emoji表情,测试一下(测试代码第二个冒号前加了空格):

#:dog :

##:dog :

###:dog :

:dog :

#🐶

##🐶

###🐶

🐶

其他

如果自己要维护使用一份 emoji,建议 Flag部分之后,即 🏴‍☠️之后的短代码都删掉, 有些短代码对应图标是图片而不是utf8文字. 容易造成困扰

© 2020 - 2021 银河小筑
本站访客数人次 总访问量 本文阅读量
川公网安备 51019002002885号   蜀ICP备20011690号
Built with Hugo Theme Stack designed by Jimmy