2011-08-29 9 views
1

나는 이미 질문을했지만 내 explonation이 분명하지 않은 것 같습니다. 그래서, 자세한 정보를 다시 묻습니다.Beautifulsoup Parsing- 세부 정보

<h2 class="sectionTitle"> 
CORPORATE HEADQUARTERS </h2> 
277 Park Avenue<br /> 
New York, New York 10172 
<br /><br />United States<br /><br /> 

.. 나는 우편 번호 10172

없이 오직 뉴욕, 뉴욕을 추출하고 싶습니다 그리고 이것은 또 다른 질문입니다

<h2 class="sectionTitle"> 
BACKGROUND</h2> 
He graduated Blabala 
</span> 
내가 추출하고 싶은

만 그는

Blabla 졸업

나는 며칠을 보냈다. 그래서 나는 미쳤다고 느꼈다 .. 제발 .. 도와주세요. 사전에 친절한 도움을 주셔서 감사합니다.

답변

0

그래도 좋은 정규식을 작성하려면 세부 사항이 필요합니다. 예를 들어

, 당신은 항상이 같은 기록 할 수있는 우편 번호없이 "본사"의 두 번째 라인을 추출 할 경우 :

>>> import re 
>>> html = ''' 
... <h2 class="sectionTitle"> 
... CORPORATE HEADQUARTERS </h2> 
... 277 Park Avenue<br /> 
... New York, New York 10172 
... <br /><br />United States<br /><br /> 
... 
... <h2 class="sectionTitle"> 
... BACKGROUND</h2> 
... He graduated Blabala 
... </span> 
... ''' 
>>> re.search('(?s)<h2 class="sectionTitle">\s*CORPORATE HEADQUARTERS\s*</h2>.*?<br />([^<>]+) \d+', html).group(1).strip() 
'New York, New York' 
>>> re.search('(?s)<h2 class="sectionTitle">\s*BACKGROUND\s*</h2>([^<>]+)', html).group(1).strip() 
'He graduated Blabala' 
+0

는 HTML을 구문 분석하는 정규 표현식을 사용하십니까? 좋은 생각 같네요! –

+0

Regex는 훨씬 빠르고 내결함성이 있습니다. 그러나 당신은 아주 조심해야합니다. 특정 사이트에만 적합합니다. – eph

+0

정말 고마워요! 하지만 난 왜 모르겠다. 그것은 작동하지 않으며 'NoneType'객체가 'group'속성을 가지고 있지 않음을 나타낸다. – Willy

0

tag.contents.split('\n') to split on lines and .rsplit ('', 1)`의 조합을 사용하여 가장 오른쪽으로 구분 된 문자열 만 분리해야합니다.