美丽的汤访问第二

时间:2014-03-24 20:52:28

标签: python html css web-scraping beautifulsoup

我正在抓取一个html文档,其中包含同一个类的两个“钩子”,如下所示:

<div class="multiRow">
    <!--ModuleId 372329FileName @swMultiRowsContainer-->
    <some more content>
</div>
<div class="multiRow">
    <!--ModuleId 372330FileName @multiRowsContainer-->
    <some more content>
</div>

当我这样做时:

mr = ct[0].find_all('div', {'class': 'multiRow'})

我只从第一个获得内容 有没有办法访问第二个内容?

谢谢!

3 个答案:

答案 0 :(得分:4)

编辑Adam Smith的评论。

请参阅上面的评论,代码如下:

from bs4 import BeautifulSoup as soup
a = "<div class=\"multiRow\"><!--ModuleId 372329FileName @swMultiRowsContainer-->Bye</div>    <div class=\"multiRow\"><!--ModuleId 372330FileName @multiRowsContainer-->Hi</div>"

print soup(a).find_all("div",{"class":"multiRow"})[1]

返回:

<div class="multiRow"><!--ModuleId 372330FileName @multiRowsContainer-->Hi</div>

答案 1 :(得分:0)

亚当·史密斯的评论的编码示例。我认为这很清楚。

ct= soup.findAll("div", {"class" : "multiRow"})
ct= ct[1]
print(ct)

答案 2 :(得分:0)

因为您只要求第一个内容,请检查您的代码

ct[0].find_all

ct[0] 只会抓取第一个内容,而不是整个内容。解决这个问题。