如何将bs4.element.ResultSet转换为字符串?蟒蛇 [英] how to convert a bs4.element.ResultSet to strings? Python

查看:44
本文介绍了如何将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))

这篇关于如何将bs4.element.ResultSet转换为字符串?蟒蛇的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆