Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式删除所有HTML数据_Python_Regex - Fatal编程技术网

Python正则表达式删除所有HTML数据

Python正则表达式删除所有HTML数据,python,regex,Python,Regex,我正在创建一个python程序,它对一个站点进行爬网和索引,当我运行当前代码时,我得到了错误 UnicodeEncodeError: 'charmap' codec can't encode character '\u200b' in position 0: character maps to <undefined> 我想知道这个错误是由于不正确的正则表达式造成的,还是发生了其他的事情 已解决 我加上了这个表情 c = re.sub('[\W_]+', ' ', c) 它将所有非

我正在创建一个python程序,它对一个站点进行爬网和索引,当我运行当前代码时,我得到了错误

UnicodeEncodeError: 'charmap' codec can't encode character '\u200b' in position 0: character maps to <undefined>
我想知道这个错误是由于不正确的正则表达式造成的,还是发生了其他的事情

已解决

我加上了这个表情

c = re.sub('[\W_]+', ' ', c)

它将所有非字母数字替换为一个空格

您遇到的问题似乎是enconding,而regex没有。你试过换衣服吗

c = page_contents.decode('utf-8')
c = re.sub('[\W_]+', ' ', c)
以及使用anothed编码,例如:

c = page_contents.decode('latin-1')

这起作用了,用空格代替了所有非字母数字

c = re.sub('[\W_]+', ' ', c)

请检查,我希望它会有帮助。你正在尝试用正则表达式解析HTML吗?这通常不是一个好主意-使用HTML解析器。这里的其他评论是正确的,您使用正则表达式“净化”页面内容的方法从根本上是有缺陷的。但这里的问题不在于正则表达式,而在于如何将字节转换为字符串。并非所有网页都将使用UTF-8。相反,您需要解析
内容类型
标题(可以在
标记中覆盖)以确定正确的编码。要使用的正确编码将是HTTP响应的一部分,可以在
内容类型
标题中,也可以在
标记中。简单地猜测一个不同的编码并没有任何好处。好吧,我只是说报告的问题不是与regex有关,而是与enconding有关,并建议一种检查方法,而不是给出解决方案。是的。。。你是对的(我刚刚在上面添加了一个类似的评论)。
c = re.sub('[\W_]+', ' ', c)