Kidow 2020-05-26 16:45 采纳率: 0%
浏览 259

python萌新求大神debug:beautifulsoup读取html文本时如何选择性过滤标签/内容?

尝试用beautiful soup按标签提取网页中的文字,打算提取的文本是台词,所以是想把有格式标签的文字排除在外,比如说人名有的标签,以及描述性动作有的标签。
比如下面这段html代码,希望能过滤掉b和i标签里的内容

<p>
<b>CLINT BARTON:</b>
 Okay, now let's worry about how you get there. 
<i>
[Clint corrects his daughter's foot to the proper position, and adjusts her shooting stance.]
</i>
<p>

但是哪怕是b和i的标签其实也都是在p的块里,所以我尝试使用attrs的if判断选择似乎完全不起作用……输出的列表似乎还是所有的内容,不知所措……

# read html
path = "C:\\Users\\Desktop\Py\\Endgame.html"
raw = open(path, errors ="ignore", mode = 'r').read()

#get text
soup = BeautifulSoup(raw, "html.parser")
soup.get_text()

#beautiful soup读取html中文本
body = soup.find("div",{"id":"mw-content-text","lang":"en","dir":"ltr"})

para = body.find_all("p")

#尝试读取无格式的台词部分
lines = []
lines = " ".join([p.get_text().strip() for p in para if len(p.attrs)==0])
print(lines)

我太菜了呜呜呜求大神指教

  • 写回答

1条回答 默认 最新

  • qq_30238975 2020-05-26 17:17
    关注

    你可以使用正则尝试一下

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?