Python,靓汤:如何得到想要的元素

2024-09-29 17:22:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图到达某个元素,解析一个站点的源代码。 这是我要分析的部分的一个片段(在这里直到星期五),但是一周中的所有日子都是一样的

<div id="intForecast">
    <h2>Forecast for Rome</h2>
    <table cellspacing="0" cellpadding="0" id="nonCA">
        <tr>
            <td onclick="showDetails('1');return false" id="day1" class="on">
                <span>Thursday</span>
                <div class="intIcon"><img src="http://icons.wunderground.com/graphics/conds/2005/sunny.gif" alt="sunny" /></div>
                <div>Clear</div>
                <div><span class="hi">H <span>22</span>&deg;</span> / <span class="lo">L <span>11</span>&deg;</span></div>
            </td>
            <td onclick="showDetails('2');return false" id="day2" class="off">
                <span>Friday</span>
                <div class="intIcon"><img src="http://icons.wunderground.com/graphics/conds/2005/partlycloudy.gif" alt="partlycloudy" /></div>
                <div>Partly Cloudy</div>
                <div><span class="hi">H <span>21</span>&deg;</span> / <span class="lo">L <span>15</span>&deg;</span></div>
            </td>
        </tr>
    </table>
</div>

……一直这样

事实上,我得到了我的结果,但我觉得很难看:

^{pr2}$

现在,如您所见,我深入到元素重复.findNext('div'),最后到达{}

我想得到星期五“部分阴天”的消息

还有什么Python式的方法吗? 谢谢!在


Tags: dividfalse元素returntableh2tr
1条回答
网友
1楼 · 发布于 2024-09-29 17:22:33

只需找到所有<td>并对其进行迭代:

soup = BeautifulSoup(your_html)
div = soup('div',{'id':'intForecast'})[0]
tds = div.find('table').findAll('td')

for td in tds:
    day = td('span')[0].text
    forecast = td('div')[1].text
    print day, forecast

相关问题 更多 >

    热门问题