0

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

# -*- 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方法来完成此操作。请帮我解决这个问题。

4

2 回答 2

1

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

title2 = planTitle.findAll("h3")[1]
于 2013-01-18T15:03:17.350 回答
0

定义自己的方法:

def find_second(container, item):
    idx1 = container.find(item)
    return container[idx1+1:].find(item) + idx1
于 2013-01-18T09:23:47.937 回答