【问题标题】:I want to extract the part of html that lies between my given conditions我想提取位于给定条件之间的html部分
【发布时间】:2019-06-09 04:45:59
【问题描述】:

我有一个长的 html 文件,我想提取我给定条件之间的部分 html。

<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">
<font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 12pt; FONT-WEIGHT: bold">
<font style="DISPLAY: inline; TEXT-DECORATION: underline">ITEM 1A. RISK FACTORS</font></font></div>

    ---
    ---
    ---
    ---
<div style="TEXT-INDENT: 0pt; DISPLAY: block; MARGIN-LEFT: 0pt; MARGIN-RIGHT: 0pt" align="justify">
<font style="DISPLAY: inline; FONT-FAMILY: Times New Roman; FONT-SIZE: 12pt; FONT-WEIGHT: bold">
<font style="DISPLAY: inline; TEXT-DECORATION: underline">ITEM 1B. UNRESOLVED STAFF COMMENTS</font></font></div>

这两个sn-ps的上面、中间和下面有很多html。我想提取从 ITEM 1A 开始的 html。风险因素并在第 1B 项结束。未解决的员工意见

这是我迄今为止尝试过的,但它只打印包含 ITEM 1A 的 html。风险因素

page_soup = soup(page_html, "html.parser")

for item in page_soup.find_all('font'):
    if "ITEM 1A. RISK FACTORS" in item.text:
            print(item)

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    你可以在你的 for 循环之外有一个布尔值来跟踪你是否想打印这些行。比如:

    page_soup = soup(page_html, "html.parser")
    
    should_print = False
    for item in page_soup.find_all('font'):
        if "ITEM 1A. RISK FACTORS" in item.text:
                should_print = True
        if "ITEM 1B. UNRESOLVED STAFF COMMENTS" in item.text:
                break
        if should_print:
                print(item)
    

    【讨论】:

      猜你喜欢
      • 2016-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多