2017-04-13 51 views
-2

我一邊抓着網站「http://www.queensbronxba.com/directory/」一邊用beautifulsoup卡住了。我幾乎完成了拼搶,並且只留下段落標籤中列出的公司名稱。問題是在同一個div中有更多的段落標籤,但我只需要第一個,因爲它給出了公司名稱。所以我需要第一段關於div的不只是第一個。這是我用來srcape代碼:用python 2.7和beautifulsoup刮臉的網站4

page = requests.get("http://www.queensbronxba.com/directory/") 
soup = BeautifulSoup(page.content, 'html.parser') 
company = soup.find(class_="boardMemberWrap") 
contact = company.find_all(class_="boardMember") 
info = contact[0] 
print(info.prettify()) 

name_tags = company.select("h4") 
names = [nt.get_text() for nt in company_tags] 
names 

company_tags = company.select("p") #here I need help to get only first paragraphs of following div containers 
companies = [ct.get_text() for ct in company_tags] 
companies 

phone_tags = company.select('a[href^="tel"]') 
phones = [pt.get_text() for pt in phone_tags] 
phones 

email_tags = company.select('a[href^="mailto"]') 
emails = [et.get_text() for et in email_tags] 
emails 
+2

要明確什麼是你的問題。現在你堅持什麼? – Mani

+0

在company_tags上有評論,說明我需要幫助的地方。 – Goran

+0

你應該在你的問題中描述你的代碼之外的問題,所以清楚地說明了這一點。如果您只希望獲得所有文本中的一個段落,請解析文本,也許按\ n分割文本。 – MooingRawr

回答

0
import requests 
from bs4 import BeautifulSoup 

page = requests.get("http://www.queensbronxba.com/directory/") 
soup = BeautifulSoup(page.content, 'html.parser') 
company = soup.find(class_="boardMemberWrap") 
contact = company.findAll(class_="boardMemberInfo") 
info = contact[0] 
print(info.prettify()) 


name_tags = company.select("h4") 
names = [nt.get_text() for nt in name_tags] 
print(names) 


for name in company.findAll(class_="boardMember"): 
    for n in name.findAll('p')[:1]: 
    print(n.text) 


phone_tags = company.select('a[href^="tel"]') 
phones = [pt.get_text() for pt in phone_tags] 
print(phones) 


email_tags = company.select('a[href^="mailto"]') 
emails = [et.get_text() for et in email_tags] 
print(emails) 
+0

此代碼完成了這項工作 – Goran