2016-07-04 25 views
0

私はPythonとBeautifulSoupを初めて使用しています。間違った用語を使用している場合は、私を許してください。Python/BeautifulSoup - 同じタグ/要素内の特定の属性を取得する

同じタグに複数の属性を持つdivタグ/要素から特定の 'text'を取得しようとしています。以下は

<div class="property-item" data-id="183" data-name="Brittany Apartments" data-street_number="240" data-street_name="Brittany Drive" data-city="Ottawa" data-province="Ontario" data-postal="K1K 0R7" data-country="Canada" data-phone="613-688-2222" data-path="/apartments-for-rent/brittany-apartments-240-brittany-drive-ottawa/" data-type="High-rise-apartment" data-latitude="45.4461070" data-longitude="-75.6465360" > 

私は特に例えば「データ名」と「データ・パス」をしたい場合は私の質問は、あるをループに私のコードで、 'プロパティ・アイテムの

for btnMoreDetails in citySoup.findAll(attrs= {"class":"property-item"}): 

を見つけますそれをどうやって取得するのですか?

私はGoogleとこのウェブサイトを検索しました。何人かはその内容を使っていると言っていました[2]。しかし、私はまだそれを得ることができませんでした。

答えて

2

あなたは(findAll、一度に1つをする)要素を抽出した後、彼らは辞書のキーであるかのようにあなたが属性にアクセスすることができます。だから、例えば、次のコード:

data = """<div class="property-item" data-id="183" data-name="Brittany Apartments" data-street_number="240" data-street_name="Brittany Drive" data-city="Ottawa" data-province="Ontario" data-postal="K1K 0R7" data-country="Canada" data-phone="613-688-2222" data-path="/apartments-for-rent/brittany-apartments-240-brittany-drive-ottawa/" data-type="High-rise-apartment" data-latitude="45.4461070" data-longitude="-75.6465360" >""" 

import bs4 
soup = bs4.BeautifulSoup(data) 
for btnMoreDetails in soup.findAll(attrs= {"class":"property-item"}): 
    print btnMoreDetails["data-name"] 

プリントアウト

Brittany Apartments 
+0

ありがとうございます!あなたに解決された –

2

あなたはdata-namedata-path属性を取得したい場合、あなたは、単にTagの属性に辞書のようなアクセスを使用することができます。あなたも一致しCSS selectorを使用することができます

for btnMoreDetails in citySoup.findAll(attrs={"class":"property-item"}): 
    print(btnMoreDetails["data-name"]) 
    print(btnMoreDetails["data-path"]) 

注意プロパティ項目:FYI

for property_item in citySoup.select(".property-item"): 
    print(property_item["data-name"]) 
    print(property_item["data-path"]) 

、あなたはすべての属性使用を確認したい場合は.attrs property

for property_item in citySoup.select(".property-item"): 
    print(property_item.attrs) 
+0

ありがとうございました!あなたに解決し、あなたに回想する。 –