dataabc / weibo-search

获取微博搜索结果信息,搜索即可以是微博关键词搜索,也可以是微博话题搜索
1.7k stars 372 forks source link

关于微博emoji #53

Open yuqwang913 opened 3 years ago

yuqwang913 commented 3 years ago

您好,最近在爬虫的时候发现一个问题。

一些微博的原创emoji在download的时候会被自动删除

比如[笑cry],[酸],[二哈]

理论上download之后这些emoji应该会转换成上面的中文编码,但是实际上有很多emoji会被自动删掉。(个别emoji能保留下来,但是数量十分有限)

请问这个问题可以在哪里修改调整呢

dataabc commented 3 years ago

修改weibo/spiders下的search.py,parse_weibo方法的weibo['text']部分就是获取文本的代码。如果还有问题,欢迎继续讨论。

yuqwang913 commented 3 years ago

修改weibo/spiders下的search.py,parse_weibo方法的weibo['text']部分就是获取文本的代码。如果还有问题,欢迎继续讨论。

            weibo['text'] = txt_sel.xpath(
                'string(.)').extract_first().replace('\u200b', '').replace(
                    '\ue627', '')

这个地方,应该是只提取了文本的内容,一些特殊符号在解析的时候被过滤掉了

请问如何能将全部解析的内容以字符串的形式表示出来呢?

例如用etree.HTML解析的时候,emoji的表达方式是[可爱],但是这里用的不是etree,我不知道应该如何输出类似的字符串

dataabc commented 3 years ago

response应该就是etree.HTML之后的内容,只是多了一些其它信息,response.xpath(...)就可以解析页面了

yuqwang913 commented 3 years ago

response应该就是etree.HTML之后的内容,只是多了一些其它信息,response.xpath(...)就可以解析页面了

应该不是response。

weibo['emoji'] = etree.HTML(text_body).xpath('//span/img/@alt')

上面是我在其他github上使用的工具,这里面text_body print出来是这样的: <img alt=[doge ] src="https://h5.sinaimg.cn/m/emoticon/icon/others/d_doge-be7f768d78.png" style="width:1em; height:1em;" /> 一毕业食堂就玩儿新花样

text_body应该是靠requests.get url来获取的

我想请问一下,对应到您这里有没有类似text_body这种东西呢?就是可以输出emoji中文编码的变量

dataabc commented 3 years ago

我也不清楚有没有text_body,但是txt_sel应该和etree.HTML(text_body)是等价的,txt_sel就是你想要的。

yuqwang913 commented 3 years ago

我也不清楚有没有text_body,但是txt_sel应该和etree.HTML(text_body)是等价的,txt_sel就是你想要的。

您好,关于txt_sel,我想他确实是我需要的全部字符串,但是我把他print出来之后是,但是很明显这个不完整,我没有找到把他完整print出来的方法,请问您有什么好的建议吗

dataabc commented 3 years ago

parse_page的response就是完整的,txt_sel是它的一部分。