2017-08-08 12 views
0

私はこの会社のメンバーディレクトリのWebページから名前&アドレスデータをこすりしたいのですが(すなわち3i Financial Investment Services Inc.)の名前としてのキーとその住所としての価値を辞書に入れます。削れ名前とアドレス(パイソン-BeautifulSoup4)

名前を辞書に追加することはできましたが、何らかの理由で自分のアドレスをキーとして添付することができません。どのようにこれを行うには誰も私を導くことができますか?

import requests 

from bs4 import BeautifulSoup 

import requests 

url = "http://mfda.ca/members/directory-of-members/" 

r = requests.get(url) 

data = r.text 

soup = BeautifulSoup(data) 

#name 
letters= soup.find_all("div", class_="col-sm-6 col-md-6") 

lobbying={} 
for element in letters: 
    lobbying[element.b.get_text()]={} 
print(lobbying)  

#addr 
Addr= soup.find_all("div", class_="col-sm-6 col-md-6 p-marg") 
for element in Addr: 
    address=element.p.get_text() 
    lobbying[element.p.get_text()]["addr"]=address 
+0

文字タグとアドレスタグの数が一致しません。 –

答えて

0

私は一緒に名前とアドレスをこすると、同時に辞書の構築をお勧めします:

lobbying = {} 
rows = soup.find_all('div', {'class' : 'row member-name'}) 

for row in rows: 
    try: 
     name = row.find('div', {'class' : 'col-sm-6 col-md-6'}) 
     addr = row.find('div', {'class' : 'col-sm-6 col-md-6 p-marg'}) 
     lobbying[name.a.b.text] = {'addr' : addr.p.text} 
    except AttributeError: 
     pass 

print(lobbying) 

出力:

{ 
    '3i Financial Investment Services Inc.': { 
     'addr': 'Suite #221, 9040 Leslie Street\nRichmond Hill, ON L4B 3M4\nPhone: (905) 597-5000\nFax: (905) 597-8366' 
    }, 
    'ARTECH Asset Advisory Services Inc.': { 
     'addr': '209 - 3993 Henning Drive\nBurnaby, BC\xa0V5C 6P7\nPhone: (604) 434-3863\nFax: (604) 434-3873' 
    } 
... 
} 
関連する問題