首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用BeautifulSoup获取这些值?

如何使用BeautifulSoup获取这些值?
EN

Stack Overflow用户
提问于 2010-05-10 13:58:30
回答 2查看 4.4K关注 0票数 3

我有这个html表:

代码语言:javascript
复制
<table>
    <tr>
        <td class="datax">a</td>
        <td class="datax">b</td>
        <td class="datax">c</td>
        <td class="datax">d</td>
    </tr>
    <tr>
        <td class="datax">e</td>
        <td class="datax">f</td>
        <td class="datax">g</td>
        <td class="datax">h</td>
    </tr>
</table>

如何获得每个<tr>的第二个和第四个值?如果我这样做了:

代码语言:javascript
复制
bs.findAll('td', {'class':'datax'})

我得到:

代码语言:javascript
复制
        <td class="datax">a</td>
        <td class="datax">b</td>
        <td class="datax">c</td>
        <td class="datax">d</td>

        <td class="datax">e</td>
        <td class="datax">f</td>
        <td class="datax">g</td>
        <td class="datax">h</td>

这是正确的!但我希望有这样的结果:

代码语言:javascript
复制
        <td class="datax">b</td>
        <td class="datax">d</td>

        <td class="datax">f</td>
        <td class="datax">h</td>

所以,我想要的值是-> b -d-f- h

(每个<td>的第二个和第四个<tr>)

用BeautifulSoup模块可以吗?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2010-05-10 14:07:55

这样就行了~

代码语言:javascript
复制
final_values=[td.string for td in bs.findAll('td', {'class':'datax'})[1::2]]

(在作出澄清后)就你的具体情况而言:

代码语言:javascript
复制
final_values=[td.b.a.string for td in bs.findAll('td', {'class':'datax'})[1::2]]
票数 5
EN

Stack Overflow用户

发布于 2010-05-10 14:04:16

我知道使用HTQL很简单:

--

HTQL只有COM支持思想。以下是javascript中的完整示例:

新ActiveXObject("HtqlCom.HtqlControl");

高纯a.setUrl("C:\test_table.html");

高纯a.setQuery(".2,4");

(a.moveFirst();!a.isEOF();a.moveNext()){

(2)(1)document.write(1);

}

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2803140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档