2016-07-15 12 views
0

私は美しいスープを初めて使い、ページに表示される情報を抽出しようとしています。この情報はdivクラス= "_ 50f3"に含まれており、ユーザーに応じて複数の情報(研究、勉強、仕事、仕事、生活など)を含むことができます。だから、これまで次のコードは、divのクラスを解析するのに、私が管理しているが、私はそれから必要な情報を抽出する方法がわからない...抽出ページ美しいスープを使ったイントロ情報

table = soup.findAll('div', {'class': '_50f3'}) 

[<div class="_50f3">Lives in <a class="profileLink" data-hovercard="/ajax/hovercard/page.php?id=114148045261892" href="/Fort-Worth-Texas/114148045261892?ref=br_rs">Fort Worth, Texas</a></div>, 
<div class="_50f3">From <a class="profileLink" data-hovercard="/ajax/hovercard/page.php?id=111762725508574" href="/Dallas-Texas/111762725508574?ref=br_rs">Dallas, Texas</a></div>] 

例えば、上記の中で私がしたいと思いますテキサス州フォートワース、そしてテキサス州ダラスに住んでいます。しかし、最も一般的なケースでは、そこにある情報を保存したいと思います。

大変助かりました!あなたはまた、個別にラベルと値を抽出することができ、

table = soup.find_all('div', {'class': '_50f3'}) 
print([item.get_text(strip=True) for item in table]) 

しかし:それは再帰的に子ノードを経由する単一要素のテキスト文字列を構築するだろう - 一般的なケースでは

答えて

2

は、これはあなたが必要なだけget_text()です:

d = {} 
for item in table: 
    label = item.find(text=True) 
    value = label.next_sibling 

    d[label.strip()] = value.get_text() 

print(d) 

プリント:

{'From': 'Dallas, Texas', 'Lives in': 'Fort Worth, Texas'} 
1
for i in range(len(table)): 
    print(table[i].text) 

関連する問題