1

以下のコードを使用して、特定のタグの親要素をフェッチしようとしています。

# -*- coding: cp1252 -*-
import csv
import urllib2
import sys
import time
from bs4 import BeautifulSoup
from itertools import islice
page1= urllib2.urlopen('http://www.sfr.fr/mobile/telephones?vue=000029&tgp=toutes-les-offres&typesmartphone=se-android&typesmartphone=se-apple&typesmartphone=se-bada&typesmartphone=se-rim-blackberry&typesmartphone=se-windows&p=0').read()
soup1 = BeautifulSoup(page1)
price_parent = soup1.findParents('div')
print price_parent

問題:このコードを実行した後に取得する出力はNull配列[]を返します。親の代わりに使用すると、値findParentも返されNoneます。

私の実際の問題はこのBeautifulSoupに似ています-findAllは特定のタグ内にありません

私の実際の問題を解決するには、None上記のように価値を得ている要素の親を取得する必要があります。

私はプログラミングに不慣れなので、この問題を解決するのを手伝ってください、そして私の無知を許してください。

4

1 に答える 1

0

.findParents()あなたが思っていることをしません。検索に一致する現在の要素の親を見つけます。すでに最上位の要素であるページ要素の親を見つけようとしています。

次のような構造があるとします。

<html>
    <body>
        <div class="foo">
            <span id="bar">Some text</span>
        </div>
    </body>
</html>

wheresoupは構造全体の BeautifulSoup 変数であり、以下で見つけることができますspan

spanelement = soup.find('span', id='bar')

そして呼び出す.findParent('div')と、結果、つまり<div class="foo">要素が返されます。

.findParents()そのため、最上位の要素を呼び出すと常に空の結果が返され、親はありません。代わりに、親要素を持つ何かで呼び出します。

于 2013-01-03T09:24:15.547 に答える