+-
如何将bs4.element.ResultSet转换为字符串?Python
我有一个简单的代码,如:

p = soup.find_all("p") paragraphs = [] for x in p: paragraphs.append(str(x))

我试图转换我从xml获得的列表并将其转换为字符串.我想保留它的原始标签,以便我可以重用一些文本,因此我之所以如此追加它.但是该列表包含超过6000个观测值,因此由于str而发生递归错误:

“RuntimeError:调用Python对象时超出了最大递归深度”

我读到你可以改变最大递归但这样做并不明智.我的下一个想法是将转换分为500个批次,但我相信必须有更好的方法来做到这一点.有人有建议吗?

最佳答案
这里的问题可能是 the document底部的一些二进制图形数据包含字符序列< P,Beautiful Soup正试图将其修复为实际的HTML标记.我没有设法确定哪个文本导致“超出递归深度”错误,但它在那里的某个地方.这对我来说是[6053],但是因为你似乎已经修改了一些文件(或者你可能正在使用不同的解析器来制作美丽的汤),所以对我来说它会有所不同,我想. 假设您不需要文档底部的二进制数据来从实际的< p>中提取您需要的任何内容.标签,试试这个:

# boot out the last `<document>`, which contains the binary data soup.find_all('document')[-1].extract() p = soup.find_all('p') paragraphs = [] for x in p: paragraphs.append(str(x))
点击查看更多相关文章

转载注明原文:如何将bs4.element.ResultSet转换为字符串?Python - 乐贴网