动态课程后获取带有标题文本的文本Python / bs4

时间:2020-03-16 20:05:01

标签: python-3.x beautifulsoup

带有文本“所有者1”的类“标签”会动态更改,因此索引相同的类名称是不一致的。我正在尝试在班级文本标签后使用名称“ Joe Smith”。有些记录的开头是“公司名称”。

    <div>
        <div class="label">Owner 1 Name</div>
        <div class="value">
        <div>Joe Smith</div>
    </div>
    <div>
        <div class="label">Company Name</div>
        <div class="value">
        <div>ACME CO</div>
    </div>

像上面的代码一样,大约有十个“标签”类。 所有者1名称通过记录动态更改,并且每次都以不同的位置结尾。我只需要每个记录的名称值。

2 个答案:

答案 0 :(得分:0)

尝试一下:

company = """your html above"""

from bs4 import BeautifulSoup as bs

soup = bs(company,'lxml')
target = soup.select('div[class="label"]:contains("Owner")+div>div')
print(target[0].text)

输出:

乔·史密斯

答案 1 :(得分:0)

这可以解决问题:

    target = soup.find("div", text="Owner 1 Name")
    print(target.find_next_sibling("div").get_text())