如何用beautifulsoup提取网页中特定的内容(标签完全一样)?

我想爬下百度百科词条所有的诗词练手,以这首诗比如满江红为例,然后我打算分别提取出这首诗的内容、注释和译文。我用python beautifulsoup,用标签<div class="para" label-module="para"></div>来
提取,发现,这样不能分别提取出诗的内容、注释和译文,因为他们的标签都是相同的(图中1/2处),都同处于一个父级标签下。
图片描述

匹配标签的代码如下

elems = exampleSoup.find_all('div',class_='main-content')

intro = elems[0].findAll('div',class_='para')

当然,如果只是这一首诗,用最笨的办法,确定一下诗的内容在哪里结束,注释开始的在第几行,可以分割。但是爬的有各种各样的诗,所以没办法确定诗有几行。所以这种办法不行。

这种方法错了吗?还是应该用方法来匹配?

我也有想到其他方法,比如都有一个<div class="anchor-list"></div>(图中的第3处),我在想可不可以寻找两个class="anchor-list"之间的内容,但是在网上没找到这种方法,如果有的话就很简单了。

正则表达式我想了一下,觉得似乎不太行,没有特定的可以匹配的上,比如说,因为所有的注释都以(1)括号开头,可以试着匹配到注释,但是在诗的正文处,也会有(1),所以也不好。

不知道还有没有其他更好的方法,所以还请大家指点一下,谢谢 Thanks♪(・ω・)ノ。

阅读 3.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题