0

次のコードを使用して、Web サイトからプランの詳細を取得しています。

# -*- 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、最初に一致したタイトルを印刷しています。プラン変数には、同じクラスと要素の組み合わせを持つ変数がもう 1 つあります。私はそれを印刷したい。

も使用してみ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 に答える