2010-07-23 11 views
0

도움말과 같은 문자열에서 할 기쁘게 파이썬에서 정규 표현식과 관련하여 도움이 필요하십니까 testsite.com 변경

+3

정규 표현식으로 사용하지 마십시오. 아름다운 스프를 사용하십시오. –

+0

Scrapy grome을 사용하여 데이터 (링크/링크 텍스트)를 얻어야합니다. Google 검색 – Gennadich

+0

을 S.Lott에게 보내주십시오. 감사합니다. 그것에 대해 읽어보십시오. – Gennadich

답변

1

그래서 제거하고 싶습니다. e <a><em> 태그? 즉 다음과 같이 수행 할 수 있습니다

>>> s = '<a href="http://testsite.com" class="className">link_text_part1 <em>another_text</em> link_text_part2</a>' 

>>> re.sub("</?(a|em).*?>", "", s) 
'link_text_part1 another_text link_text_part2' 

영어로, 이것은 검색 :

  • < 문자 선택적으로/(닫는 태그를 얻기 위해)
  • 다음에 다음에
  • 'a'또는 'em'
  • 그 다음에 첫 번째 문자까지 포함되는 문자

및 빈 문자열로 바꿉니다.

그러나 Kos가 말한 것처럼 정규식을 사용하여 HTML을 구문 분석하는 것은 분석하는 HTML의 형식이 절대로 변경되지 않는다는 것을 안다면 매우 위험하고 취약합니다.

+0

감사합니다. 하지만 치료에 도움이 안된다. – Gennadich

1
string = re.sub('<[^>]+>', '', string) 
+0

고마워. 그러나 그것은 역시 도움이되지 않았습니다 – Gennadich

+0

아마도 당신은 글로벌 플래그가 필요합니다. – bluesmoon

1

HTML을 정규 표현식으로 구문 분석하는 것은 일반적으로 단순한 경우에도 강력히 권장되지 않습니다. 정규식을 혼란스럽게 할 HTML 코드를 때릴 수 있습니다.

가벼운 HTML 구문 분석기는 일반적으로보다 안정적이고보다 세련된 솔루션입니다.

+0

감사합니다. 기억할 것입니다. – Gennadich

0

BTW. 도움 :

from scrapy.utils.markup import remove_tags 
... 
bbb=remove_tags(aaa)