2013-08-04 2 views
0

가끔씩 나는 언제 다른 것을 사용해야하는지 잘 모르겠습니다. 필자는 보통 모든 종류의 것들을 파이썬으로 파싱하지만이 질문을 HTML 구문 분석에 집중하고자합니다.정규식 또는 DOM/문자열 조작 만 사용해야합니까?

개인적으로 두 개 이상의 일반 요소 (예 : 뉴스 목록의 제목 및 본문)를 구문 분석해야 할 때 DOM 조작이 실제로 유용하다는 것을 알았습니다.

그러나 정규식을 작성하거나 단순히 문자열 조작을 원하는 값을 얻으려는 것이 명확하지 않은 상황에서 발견되었습니다. 특정 가상의 예 :

(190 1)

: 나는 앨범의 총 사진 수, 문제는이 방법을 사용하여 사진의 수를 구문 분석 얻을 수있는 유일한 방법을 얻을 수있다

그래서 전체 HTML 문서에서 '190'을 얻어야합니다. HTML을 파싱하기위한 정규 표현식이 정확히 최선이 아니거나, 내가 항상 이해하고있는 것이지만, 정규식을 쓸 수는 있습니다. 다른 한편, DOM을 사용하는 것은 단순한 요소이기 때문에 압도적 인 것처럼 보입니다. 문자열 조작이 가장 좋은 방법 인 것처럼 보이지만 이와 비슷한 상황에서 그렇게 진행해야하는지는 확실하지 않습니다.

파이썬 (또는 다른 언어)을 사용하여 HTML 문서에서 이러한 단일 요소를 어떻게 구문 분석하겠습니까?

답변

4

주관적인 질문이지만 (주관적 대답 포함) 일반적으로 HTML에서/XML을 구문 분석하기 위해 정규식을 사용하지 않으려 고합니다. previously discussed에 있습니다. 마크 업이 포함 된 입력 문자열이 작고 더 복잡해질 가능성이없고 검색되는 패턴이 모호하지 않고 정규식으로 쉽게 설명되는 경우에만 정규식을 사용합니다. 실용적인 필요성과 직업에 적합한 도구의 균형을 맞추는 문제입니다.

예를 들어, 정규식으로 시작하는 것이 좋다고 생각합니다. 그러나 입력에서 추가 정보를 추출하거나 정규식이 복잡해지기 시작하면 파서로 전환하십시오.

2

사람들은 태그를 파싱 할 때 작업에 적합한 도구가 아니기 때문에 정규식을 사용하여 HTML을 검색하지 않습니다. 그러나 모든 경우는 사례별로 고려해야합니다. 태그를 검색하지 않고 문서에서 잘 정의 된 문자열을 검색합니다. 가장 간단한 해결책은 정규식 또는 일종의 XPath 식일뿐입니다. 간단한 구문 분석에는 간단한 도구가 필요합니다.