我正在抓取一些格式如下的HTML:
<div class="doccontent">
<h3> Section Title 1 </h3>
<div class="line"> My first line </div>
<div class="line> My second line </div>
<div class="linenumber"> text i don't need </div>
<h3> Section Title 2 </h3>
<div class="line"> My third line </div>
<div class="chapter">Chapter four</div>
<div class="line> My fourth line </div>
</div>
我只想捕获h3和class =“ line”文本。我尝试了两种方法。第一个:
for lines in full_text:
for booktitle in lines.find("h3"):
linesArr.append(booktitle)
for line in lines.find_all(class_='line'):
linesArr.append(line)
这会将所有书名追加到列表的开头,然后开始在各行中使用。
第二个:
for lines in full_text:
for line in lines.find_all(['h3', class_="line"]):
linesArr.append(line)
第二个对我来说似乎更有希望,但是存在语法错误.BS4文档没有涵盖如何搜索标签和类的列表。任何帮助,不胜感激。
答案 0 :(得分:2)
如评论中所述,您可以使用css或语法指定多个css选择器并将其传递给选择器
data = [item.text for item in soup.select("h3 , .line")]