2014-07-14 4 views
-2

나는이 같은 정보를 얻으려고합니다. 특히 강한 태그 뒤에 오는 텍스트는 어떻게해야할까요, 감사합니다.beautifulsoup을 사용하여 HTML 표를 구문 분석

<span class=JamalsinRed>H.S. AHMED ALLY</span>    
<hr align="left" width="400" color="#CCCCCC"> 
<strong>Address : </strong>217/7,Saleh Market,Adamjee Road,Saddar<br> 
<strong>City : </strong>Rawalpindi<br> 
<strong>Phone # : </strong>(92 51) 5511748, 5125396<br> 
<strong>Fax : </strong>(92 51) 5511749<br> 
<strong>E-mail : </strong><a class=b href='mailto:[email protected]'>[email protected]</a><br><strong>Web : </strong> 
<a target=_blank href='http://www.hsahmedally.com'>www.hsahmedally.com</a><br> 

답변

1

필드 이름을 인수로 사용하고 필드 값을 출력하는 멋진 재사용 기능을 만드는 것이 아이디어입니다.

from bs4 import BeautifulSoup 

data = """ 
<div> 
    <span class="JamalsinRed">H.S. AHMED ALLY</span> 
    <hr align="left" width="400" color="#CCCCCC"> 
     <strong>Address : </strong>217/7,Saleh Market,Adamjee Road,Saddar<br> 
     <strong>City : </strong>Rawalpindi<br> 
     <strong>Phone # : </strong>(92 51) 5511748, 5125396<br> 
     <strong>Fax : </strong>(92 51) 5511749<br> 
     <strong>E-mail : </strong><a class=b href='mailto:[email protected]'>[email protected]</a><br><strong>Web : </strong> 
     <a target=_blank href='http://www.hsahmedally.com'>www.hsahmedally.com</a><br> 
    </hr> 
</div> 
""" 

def get_field_value(soup, field): 
    return soup.find('strong', text=lambda x: x.startswith(field)).next_sibling 

soup = BeautifulSoup(data) 
print get_field_value(soup, 'Address') 
print get_field_value(soup, 'City') 

인쇄 :

217/7,Saleh Market,Adamjee Road,Saddar 
Rawalpindi 
기능은 필드에서 전달 된 이름과 get the next sibling로 시작 text으로 strong 요소를 검색 할
관련 문제