Python中用BeautifulSoup将多个p标签文本存为空格分隔的单变量
实现方案
你可以先提取所有目标p标签的文本内容组成列表,再用join方法按空格拼接成单个字符串即可,修改后的代码如下:
from bs4 import BeautifulSoup HTML = ''' </tr> <td class="up"> <p class="pie_chart_val">+1.30%</p> </td> <td class="down"> <p class="pie_chart_val">-1.33%</p> </td> <td class="up"> <p class="pie_chart_val">+1.58%</p> </td> <td class="up"> <p class="pie_chart_val">+1.61%</p> </td> </tr> ''' soup = BeautifulSoup(HTML, 'lxml') # 提取所有p标签的文本生成列表 text_list = [tag.text for tag in soup.find_all('p', class_="pie_chart_val")] # 用空格拼接列表为单个字符串 res = ' '.join(text_list) print(res) # 输出:+1.30% -1.33% +1.58% +1.61%
逻辑说明
- 用列表推导式遍历
find_all返回的所有p标签对象,直接提取每个标签的text属性生成纯文本列表 - 字符串的
join方法可以将列表内的所有元素按指定分隔符拼接为完整字符串,这里指定分隔符为空格' ',最终得到的res就是你需要的存储所有文本的单个变量。
如果后续需要换其他分隔符,直接替换join内的空格即可,比如要逗号分隔就改成','.join(text_list)。
内容的提问来源于stack exchange,提问作者Newbie
相关产品推荐
相关产品推荐

