1

私は正直にBeautifulSoup難しすぎると感じています、ドキュメントは私が探している基本を説明していません。

属性を持つタグ内の文字列を返そうとしています:

<span class="on">6220</span>

しかし、これを実行します:

def fetch_online():
    users = page('span', {'class' : 'on'})
    return str(users)

私にくれます[<span class="on">6220</span>]。だから私はそれをすべて間違っていると思いました、タグから単純な文字列を取得する方法は何ですか?

4

3 に答える 3

1

BeautifulSoupはそれほど理解しやすいものではありませんが、時にはとても便利な場合があります;)

したがって、FlopCoderの例を取り直して、もう少し説明します。

html = # HTML Code #maybe parsed from a website
soup = BeautifulSoup(html) #you create a soup object with your html code
x = soup.find('span', {'class' : 'on'}) #Search for the first span balise in the code, whith class : on
print x.text #Find the found balise, .text mean only the text inside the <>text</>

あなたがする必要があることを見つけるためにあなたが複数を持っている場合:

x = soup.findAll('span', {'class' : 'on'})
for span in x:
    print span.text

この最後の例では、findAllを使用します。コード内にClass:Onを含むすべてのスパンバリスを含むリストを作成します。したがって、forを実行できます。

your_object.text->テキストを返す

your_object.a->リンクを返します(など...)

それが少し役立つことを願っています!

于 2012-05-29T02:34:16.717 に答える
1

あなたはこのようにそれを行うことができます:

html = # your HTML source goes here
soup = BeautifulSoup(html)
x = soup.find('span', {'class' : 'on'})
print x.text
print x.string
print x.contents[0]
于 2012-05-26T14:59:04.060 に答える
0

交換

return str(users)

return users[0].string

また

return users[0].contents

このpage('span ...呼び出しは、実際にfind_all()は、リストを返す関数を呼び出すための省略表記です。したがって、最初にそのリストにインデックスを付け、タグを取得してから、そのタグを取得しcontentsます。Pythonstr()関数を実行すると、すべてが得られます。タグの文字列を取得するためのBeautifulSoup関数が必要です。

于 2012-05-26T14:59:20.310 に答える