2017-04-13 11 views
-2

beautifulsoupでウェブサイト「http://www.queensbronxba.com/directory/」を掻き取っているうちに、私は一点で立ち往生しています。私は掻き集めることがほとんど終わっており、段落タグにあるリストから会社名だけを残しました。問題は、同じ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

あなたの質問の中にあなたのコードの外の問題を記述する必要があるので、それははっきりと述べられています。あなたが取得しているすべてのテキストのうち1つの段落だけを必要とする場合は、テキストを解析し、おそらく '\ 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

関連する問題