2017-08-02 13 views
2

私は不動産業者の名前をwebsiteから掻き出しようとしています。Python Web scrape:クラスの問題

マイコード:私は最初の二つのエージェントことを発見し

name: Michael Stavrianos 
name: Kristalla Stavrianos 
Traceback (most recent call last): 
    File "C:\Users\Toby\Desktop\Webscrape\LjHooker - mark1.py", line 16, in <module> 
    name = agent_name[0].text 
IndexError: list index out of range 

:私は、スクリプトを実行したときに

containers = page_soup.findAll("div",{"class":"team-details"}) 

for container in containers: 
    agent_name = container.findAll("a", {"class":"team-name_link"}) 
    name = agent_name[0].text 


    print("name: " + name) 

は、しかし、私はエラーメッセージに続いて最初の2人の名前を、受信名前は "team-name_link"クラスの下にありますが、残りは "team-name"クラスの下にあります。私はクラスの2つのセットから名前を同時に掻く方法を不明です。

答えて

2

私はすべての名前が必要なタグ内にある、あなたはそれが間違っだと思いますが、あなたが実際にdivを探してする必要があります

from bs4 import BeautifulSoup 
import requests 

html = requests.get("https://woollahra.ljhooker.com.au/our-team").text 
soup = BeautifulSoup(html, 'html.parser') 
containers = soup.findAll("div",{"class":"team-details"}) 

for container in containers: 
    agent_name = container.find("div", {"class":"team-name"}) 
    name = agent_name.text 
    print(name) 

上記のコードの出力:

Michael Stavrianos 
       Licensee 



Kristalla Stavrianos 
       Principal 



Jade Marshall 
       Property Management Associate 


Emma Phelan 
       Property Management Associate 


Isabella Marechal - Ross 
       Property Management Associate 


Victoria Empson 
       Property Investment Manager