用靓汤编码表情符号

2024-05-19 00:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

找人帮忙。我正在做一个项目,用Python中的beautifulsoup来抓取Craigslist的特定帖子。我可以成功地显示在文章标题中找到的表情符号,但在帖子正文中没有成功。我尝试过不同的变体,但到目前为止没有任何效果。任何帮助都将不胜感激。在

代码:

f = open("clcondensed.txt", "w")
html2 = requests.get("https://raleigh.craigslist.org/wan/6078682335.html")
soup = BeautifulSoup(html2.content,"html.parser")
#Post Title 
title = soup.find(id="titletextonly")       
title1 = soup.title.string.encode("ascii","xmlcharrefreplace")
f.write(title1)
#Post Body  
body = soup.find(id="postingbody")          
body = str(body)
body = body.encode("ascii","xmlcharrefreplace")
f.write(body)

从正文收到的错误:

^{pr2}$

Tags: 项目idtitlehtmlasciibodyfindpost
1条回答
网友
1楼 · 发布于 2024-05-19 00:03:57

您应该使用unicode

body = unicode(body)

请参考靓汤文档NavigableString


更新:

很抱歉回答得太快了。不是这样的。在

这里您应该使用lxml解析器而不是html解析器,因为html解析器不支持^{}表情符号。在

在我的测试中,当NCR表情符号的十进制值大于65535,例如html演示表情符号🚢HTML解析器只是用错误的unicode \ufffd而不是u"\U0001F6A2"对其进行解码。我找不到精确的Beautiful Soup reference,但是lxml解析器就可以了。在

测试代码如下:

^{pr2}$

你可以引用lxml entity handling来做更多的事情。在

如果不安装lxml,只需参考lxml installing。在

希望这能有所帮助。在

相关问题 更多 >

    热门问题