首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用.find方法时如何获取第二个匹配的对象

在Python中使用.find方法时如何获取第二个匹配的对象
EN

Stack Overflow用户
提问于 2013-01-18 17:13:57
回答 2查看 134关注 0票数 0

我正在使用以下代码从网站获取计划细节。

代码语言:javascript
复制
# -*- coding: cp1252 -*-
import csv
import urllib2
import sys
import urllib
import time
from bs4 import BeautifulSoup
from itertools import islice


page = urllib2.urlopen('http://www.t-mobile.com/shop/plans/individual-plans.aspx').read()
soup = BeautifulSoup(page)

#find the container for all the plans
tabcontent = soup.find('div', {"id": "divIndFamilyDetails"})
containers = tabcontent.findAll('ul', {"class": "plans"})

for plan in containers:
  planTitle = plan.find("li", {"class": "detail"})
  if planTitle:
       title = planTitle.find("h3").text     
       print title

目前print title正在打印第一个匹配的标题,计划变量具有多个具有相同类和元素组合的变量。我想把它打印出来。

我也尝试使用findNext,但它再次打印出相同的结果。我不知道如何使用findAll方法来实现这一点。请帮我解决这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-18 23:03:17

findAll返回一个列表,所以只需引用索引:

代码语言:javascript
复制
title2 = planTitle.findAll("h3")[1]
票数 1
EN

Stack Overflow用户

发布于 2013-01-18 17:23:48

定义您自己的方法:

代码语言:javascript
复制
def find_second(container, item):
    idx1 = container.find(item)
    return container[idx1+1:].find(item) + idx1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14395646

复制
相关文章

相似问题

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