我想爬下百度百科词条所有的诗词练手,以这首诗比如满江红为例,然后我打算分别提取出这首诗的内容、注释和译文。我用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♪(・ω・)ノ。