首页 > 解决方案 > 如何通过搜索一些文本来获取特定标签和类的索引号?

问题描述

我有以下 html

<ul class="vote_list clearfix" id="vote_div">                    
    <li class="vote_one">
        <div class="vote_show">
            <div class="vote_T1">Chelsea</div>
            <div class="vote_state">
                <div class="vote_ST1">Votes:30000</div>
                <div class="vote_ST2">Ranking:1</div>
            </div>
        </div>
        <div class="vote_date">
            <div class="vote_T1">Chelsea</div>
        </div>
    </li>

    <li class="vote_one">
        <div class="vote_show">
            <div class="vote_T1">Arsenal</div>
            <div class="vote_state">
                <div class="vote_ST1">Votes:20000</div>
                <div class="vote_ST2">Ranking:2</div>
            </div>
        </div>
        <div class="vote_date">
            <div class="vote_T1">Arsenal</div>
        </div>
    </li>

    <li class="vote_one">
        <div class="vote_show">
            <div class="vote_T1">Liverpool</div>
            <div class="vote_state">
                <div class="vote_ST1">Votes:10000</div>
                <div class="vote_ST2">Ranking:3</div>
            </div>
        </div>
        <div class="vote_date">
            <div class="vote_T1">Liverpool</div>
        </div>
    </li>
<ul>

我想提取切尔西的总票数,所以它应该显示 Votes: 30000

我的想法是哪个<li class="vote_one">自己的Chelsea文本,它应该返回0,因为它Chelsea位于第一个vote_one元素上

但我不知道如何将我的想法转化为代码。

提前致谢。

标签: pythonbeautifulsoup

解决方案


终于解决了@Idlehands

soup = BeautifulSoup(full_content, "lxml")

i=0
for vote_one_list in soup.find_all("li", class_="vote_one"):
        if vote_one_list.find("div", class_="vote_show").find("div", class_="vote_T1").text == "Chelsea":
                total_vote = soup.find_all("li", class_="vote_one")[i].find("div", class_="vote_show").find("div", class_="vote_state").find("div", class_="vote_ST1").text
                rank = soup.find_all("li", class_="vote_one")[i].find("div", class_="vote_show").find("div", class_="vote_state").find("div", class_="vote_ST2").text
                print "Chelsea | "+ rank + " | "+total_vote
        i = i+1

推荐阅读