表情是获取alt属性的值
传入内容的div区域即可,node就是内容的最外层的节点
@decorator
def getinfo_emoji(self, node):
info = node.xpath(".//*")
infolist= [[i.attrib.get("alt") ,i.text,i.tail] if i.tag=="a" else [i.attrib.get("alt"),i.tail ,i.text] for i in info]
newstr1 = ""
if infolist:
newstr1 = reduce(self.listlisttostr, infolist)
if isinstance(newstr1, list):
newstr1 = "".join([i.replace(" ", "").replace("\u200b", "") for i in newstr1 if i not in ['', ' ', None]])
newstr2 = node.text.strip().replace(" ", "").replace("\u200b", "")
newstr = newstr2 + newstr1
return newstr
@decorator
def listlisttostr(self, x, y):
xstr = "".join([i.replace(" ", "").replace("\u200b", "") for i in x if i not in ['', ' ', None]])
ystr = "".join([j.replace(" ", "").replace("\u200b", "") for j in y if j not in ['', ' ', None]])
return xstr + ystr