【发布时间】:2017-12-09 00:57:18
【问题描述】:
我正在尝试从 HTML 文件中提取类标记,但前提是它位于给定停止点之前。我有的是:
import requests
from bs4 import BeautifulSoup
page = requests.get("https://mysite")
soup = BeautifulSoup(page.content, 'html.parser')
class_extr = soup.find_all("span", class_="myclass")
这可行,但它会找到myclass 的所有 个实例,而我只想要那些 之前 以下文本显示在soup 中:
<h4 class="cat-title" id="55">
Title text N1
<small>
Title text N2.
</small>
</h4>
使这个块独一无二的是Title text N 行,尤其是Title text N2. 行。之前有很多cat-title标签,所以我不能用它作为停止条件。
围绕这个块的代码如下所示:
...
<div class="myc">
<a class="bbb" href="linkhere_893">
<span class="myclass">Text893</span>
<img data-lazy="https://link893.jpg"/>
</a>
</div>
<div class="myc">
<a class="bbb" href="linkhere_96">
<span class="myclass">Text96</span>
<img data-lazy="https://link96.jpg"/>
</a>
</div>
</div><!-- This closes a list that starts above -->
<h4 class="cat-title" id="55">Title text N1 <small> Title text N2.</small></h4>
<div class="list" id="55">
<div class="myc">
<a class="bbb" href="linkhere_34">
<span class="myclass">Text34</span>
<img data-lazy="https://link34.jpg"/>
</a>
</div>
<div class="myc">
...
在上面和下面继续。
我该怎么做?
【问题讨论】:
-
h4 标签是 span.myclass 标签的子标签吗?
-
不,不是。 (需要更多字符)
-
您能否发布一个 HTML 结构的示例。或者至少 h4 和 span 之间的关系是什么
-
没有关系。我只想找到所有
myclass标记before 该文本块,而不是所有出现在after 它的标记。
标签: python html beautifulsoup