如何找到beautifulsoup的课程

时间:2014-09-24 08:12:10

标签: python beautifulsoup

<hknbody>
        <tr>
            <td class="padding_25 font_7 bold xicolor_07" style="width:30%">

                date

            </td>
            <td class="font_34 xicolor_42">

                19 Eylül 2013

            </td>
        </tr>
        <tr>
            <td style="height:10px" colspan="3"></td>
        </tr>
        <tr>
            <td class="bgcolor_09" style="height:5px" colspan="3"></td>
        </tr>
        <tr>
            <td style="height:10px" colspan="3"></td>
        </tr>
        <tr>
            <td class="padding_25 font_7 bold xicolor_07" style="width:30%">

                Size

            </td>
            <td class="font_34 xicolor_42">
               650 cm

类名相同,类在同一个表中。 我怎样才能找到正确的数据?例;如果&#34;日期&#34;在<td class="padding_25 font_7 bold xicolor_07>中不存在,您不会提取日期并查找下一个数据。

1 个答案:

答案 0 :(得分:0)

如果这是您的HTML并且您可以更改它,您应该使用semantic HTML使用描述数据含义的类,ID或名称属性标记元素,而不是其外观。然后,您将有一种明确的方式来选择所需的标签。

因为这就是你需要做的事情:

import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(html)

date_tag = soup.find('td', text=re.compile('^\s*date\s*$'))    # find first <td> containing text "date"
if date_tag:
    date_value = date_tag.find_next_sibling('td').text.strip()

>>> print date_value
19 Eylül 2013