BeautifulSoup按字符串查找标签,没有儿童文本

时间:2017-11-23 00:23:10

标签: python beautifulsoup

我使用Python3和BeautifulSoup 4.4.0从网站中提取数据。我对div标签中的表感兴趣但是为了告诉表中的数据,我必须得到h4标签的文本,然后获得表格的兄弟。问题是其中一个h4标签有一个span,当内部有另一个标签时,BeautifulSoup为字符串值返回None。

def get_table_items(self, soup, header_title):
        header = soup.find('h4', string=re.compile(r'\b{}\b'.format(header_title), re.I))
        header_table = header.find_next_sibling('table')
        items = header_table.find_all('td')
        return items

上述代码适用于除<h4>Unique Title 2<span>(<a href="...">Something</a>)</span></h4>

以外的所有h4
....
<div id="some_id">
    <h4>Unique Title 1</h4>
    <table>
     ...
    </table>
    <h4>Unique Title 2<span>(<a href="...">Something</a>)</span></h4>
    <table>
    ...
    </table>
    <h4>Unique Title 3</h4>
    <table>
    ...
    </table>
</div>

1 个答案:

答案 0 :(得分:2)

您可能需要手动执行搜索,而不是依赖正则表达式:

DD-MM-YYYY