如何将bs4.element.ResultSet转换为字符串?蟒蛇
问题描述
我有一个简单的代码,如下所示:
p = soup.find_all("p")
paragraphs = []
for x in p:
paragraphs.append(str(x))
我正在尝试转换从XML获得的列表,并将其转换为字符串。我想保留它的原始标签,这样我就可以重复使用一些文本,这就是我为什么要这样附加它的原因。但该列表包含6000多个观测值,因此由于str:
出现递归错误"运行错误:调用Python对象时超出最大递归深度"
我读到您可以更改最大递归,但这样做并不明智。我的下一个想法是将转换为字符串的过程分成500个批次,但我相信一定有更好的方法来做到这一点。有人有什么建议吗?
HTML
这里的问题可能是the document底部的一些二进制图形数据包含字符序列<P
,Beautiful Soup试图将其修复为实际的推荐答案标记。我还没有确定是哪个文本导致了"超过递归深度"的错误,但它就在那里的某个地方。它对我来说是p[6053]
,但是由于您似乎稍微修改了文件(或者您使用的是不同的Beautiful Soup解析器),我想对您来说会有所不同。
假设您不需要文档底部的二进制数据来从Actual<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))
相关文章