Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.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:使用大字符串时出现内存错误_Python_String_Memory - Fatal编程技术网

Python:使用大字符串时出现内存错误

Python:使用大字符串时出现内存错误,python,string,memory,Python,String,Memory,基本上,我正在设计一个网络搜索引擎,所以我设计了一个爬虫来获取网页 当读入时,网页是html格式的,所以所有的标签都在那里。我需要从正文和标题中提取关键字,所以我尝试删除所有之间的标记 下面的代码适用于小html页面,但当我尝试从开始在大规模ie上使用它时,内存不足 0 def remove_tags(self, s): 1 while '<' in s: 2 start = s.index('<') 3 end = s.index('>

基本上,我正在设计一个网络搜索引擎,所以我设计了一个爬虫来获取网页

当读入时,网页是html格式的,所以所有的标签都在那里。我需要从正文和标题中提取关键字,所以我尝试删除所有之间的标记

下面的代码适用于小html页面,但当我尝试从开始在大规模ie上使用它时,内存不足

0 def remove_tags(self, s):
1     while '<' in s:
2         start = s.index('<')
3         end = s.index('>')
4         s = s[:start] + " " + s[end+1:]
5     return s.split()

内存错误发生在第4行。如何修复代码,以使使用s的子字符串不会消耗过多内存?

您的一般方法是错误的。首先,使用真正的XML/HTML解析器。类似于BeautifulSoup的东西,当涉及到糟糕的HTML时,它是宽容的。你看电视的方法不会持续很久

第二,你已经把整件事读到了记忆中,并在那里玩。这会消耗内存,而且您正在执行的某些操作可能会创建副本,这也不是一件好事。相反,迭代输入流并在看到数据时对其进行处理。将remove_标记视为输入的过滤器,而不是文本处理功能