当前位置: 首页 > 面试题库 >

如何在python中删除nonAscii字符

许兴文
2023-03-14
问题内容

这是我的代码:

#!C:/Python27/python
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import urllib2
import sys
import urlparse
import io

url = "http://www.dlib.org/dlib/november14/beel/11beel.html"
#url = "http://eqa.unibo.it/article/view/4554"
#r = requests.get(url)
html = urllib2.urlopen(url)
soup = BeautifulSoup(html, "html.parser")
#soup = BeautifulSoup(r.text,'lxml')

if url.find("http://www.dlib.org") != -1:
    div = soup.find('td', valign='top')
else:
    div = soup.find('div',id='content')

f = open('path/file_name.html', 'w')
f.write(str(div))
f.close()

在搜寻这些网页时,我发现一些非AScii字符进入了从该脚本编写的html文件中,我需要删除这些字符或将其解析为可读字符。有什么建议吗?谢谢


问题答案:

字符为8字节(0-255),ascii字符为7字节(0-127),因此您只需删除ord值低于128的所有字符

chr将整数转换为字符,ord将字符转换为整数。

text = ''.join((c for c in str(div) if ord(c) < 128)

这应该是您的最终代码

#!C:/Python27/python
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import urllib2
import sys
import urlparse
import io

url = "http://www.dlib.org/dlib/november14/beel/11beel.html"
#url = "http://eqa.unibo.it/article/view/4554"
#r = requests.get(url)
html = urllib2.urlopen(url)
soup = BeautifulSoup(html, "html.parser")
#soup = BeautifulSoup(r.text,'lxml')

if url.find("http://www.dlib.org") != -1:
    div = soup.find('td', valign='top')
else:
    div = soup.find('div',id='content')

f = open('path/file_name.html', 'w')
text = ''.join((c for c in str(div) if ord(c) < 128)
f.write(text)
f.close()


 类似资料:
  • 本文向大家介绍如何在Python中从字符串中删除辅音?,包括了如何在Python中从字符串中删除辅音?的使用技巧和注意事项,需要的朋友参考一下 对于此问题,使用正则表达式是最简单的。您可以使用“ |”分隔多个字符 并使用re.sub(chars_to_replace,string_to_replace_with,str)。例如: 注意:您也可以使用[]创建要在正则表达式中替换的字符组。 如果只想保

  • 问题内容: 从字典中删除键时,我使用: 有没有一种方法可以做到这一点? 问题答案: 要删除键而不管它是否在字典中,请使用以下两个参数的形式: 如果典中存在,则返回,None否则返回。如果第二个参数未指定(即)并且key不存在,则引发a。 要删除肯定存在的密钥,你还可以使用 如果关键字在字典中不存在,则会引发 。

  • 从字典中删除键时,我使用: 有没有一个简单的方法可以做到这一点?

  • 问题内容: 在Python中删除错误路径字符(例如Windows上的“ \”或“:”)的最跨平台方法是什么? 解 因为似乎没有理想的解决方案,所以我决定采用相对严格的限制,并使用了以下代码: 问题答案: 不幸的是,可接受的字符集因操作系统 和 文件系统而异。 Windows: <>:“ / / |?* * 不允许使用整数表示形式(介于0到31之间)的字符。 * 目标文件系统不允许的任何其他字符。

  • 问题内容: 例如,有一个字符串。。 如何从中删除中间字符M?我不需要代码。我想知道: Python中的字符串是否以任何特殊字符结尾? 哪种更好的方法-从中间字符或创建新字符串开始,将所有内容从右移到左,而不是复制中间字符? 问题答案: 在Python中,字符串是不可变的,因此你必须创建一个新字符串。你有一些关于如何创建新字符串的选项。如果要删除出现的,请执行以下操作: 如果要删除中心字符: 你询问

  • 问题内容: 我需要在字符串中的单词之后删除空格。可以用一行代码完成吗? 例: 问题答案: 更多关于在文档