2017-12-22 20 views
1

1つのWebページからデータを削りました。私は、データのURLエイリアスと値を抽出する必要があります。そこからBeautifulSoupでデータを取得する方法

<option data-url-alias="/brezovica" value="1247">Brezovica</option> 
<option data-url-alias="/crnomerec" value="1248">Črnomerec</option> 
<option data-url-alias="/donja-dubrava" value="1249">Donja Dubrava</option> 

を:私が得る結果

grad = s.get('https://www.njuskalo.hr/prodaja-kuca/zagreb',headers=header, proxies=proxyDict) 
city_soup = BeautifulSoup(grad.text, "lxml") 
kvarts = city_soup.find_all(id="locationId_level_1") 
print kvarts[0] 
print "++++++++++++++++++++++=" 

for kvart in kvarts[0]: 
    print kvart 

:私のコードは次のようになります。 どうすればいいですか?

+0

利用の基本的な文字列操作(またはデフォルト値を設定することができますか)?簡単に正規表現を使用する –

+0

[documentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#attributes)を参照してください。 – Galen

答えて

4

bs4は、タグ属性を辞書に格納するので、名前で選択することができます。コメントでEvyatar Megedで述べたように

for kvart in kvarts[0].find_all('option'): 
    print kvart['data-url-alias'], kvart['value'] 

キーが存在しない場合、これはKeyErrorが発生しますので、あなたはそれが.getメソッドを使用についてわからない場合。

for kvart in kvarts[0].find_all('option'): 
    print kvart.get('data-url-alias'), kvart.get('value') 

dict.get戻っNoneキーが存在しない場合

+0

「KeyError」が発生しないように '.get'を使用する方が良いと思います。まだ+1 –

+0

@EvyatarMegedあなたは絶対に正しいです、私は更新します。 –

関連する問題