Iva*_*ich 5 html python decode
尝试其他答案时,这些解决方案不起作用,尝试这些方法时,输出的字符串相同。
我正在尝试使用Python 2.7进行网络抓取。我已经下载了网页,其中包含一些字符,这些字符的形式x似乎是120代表ASCII代码。我尝试使用HTMLParser()和decode()方法,但似乎无济于事。请注意,我在网页上所获得的格式仅为这些字符。例:
Blasterjaxx 
Run Code Online (Sandbox Code Playgroud)
请指导我使用Python解码这些字符串。我已经阅读了其他答案,但是解决方案似乎对我不起作用。
字符引用的正确格式是,&#nnnn;因此;您的示例中缺少。您可以添加;,然后使用HTMLParser.unescape():
from HTMLParser import HTMLParser
import re
x ='Blasterjaxx '
x = re.sub(r'(&#[0-9]*)', r'\1;', x)
print x
h = HTMLParser()
print h.unescape(x)
Run Code Online (Sandbox Code Playgroud)
这给出了这个输出:
Blasterjaxx 
Blasterjaxx
Run Code Online (Sandbox Code Playgroud)
根据您正在执行的操作,您可能希望将该数据转换为有效的 HTML字符引用,以便您可以使用适当的 HTML 解析器在上下文中解析它。
但是,您可以轻松提取数字字符串并将其转换为等效的 ASCII 字符。例如
s ='Blasterjaxx '
print ''.join([chr(int(u)) for u in s.split('&#') if u])
Run Code Online (Sandbox Code Playgroud)
输出
Blasterjaxx
Run Code Online (Sandbox Code Playgroud)
跳过if u我们得到的初始空字符串,因为s它以分割字符串开头'&#'。或者,我们可以通过切片来跳过它:
''.join([chr(int(u)) for u in s.split('&#')[1:]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1405 次 |
| 最近记录: |