매우 큰 HTML 파일 (몇 메가 바이트)이 있습니다. 원하는 데이터가 다음과 같음을 알고 있습니다. <div class=someName>here</div>
매우 큰 HTML 파일에서 특정 요소를 구문 분석
HTML 페이지를 통해 구문 분석 할 수있는 좋은 라이브러리는 무엇입니까? 요소를 순환하여 각각을 채울 수 있습니다. someName
? C#, Python 또는 C++에서이 작업을 수행하려고합니다.
매우 큰 HTML 파일 (몇 메가 바이트)이 있습니다. 원하는 데이터가 다음과 같음을 알고 있습니다. <div class=someName>here</div>
매우 큰 HTML 파일에서 특정 요소를 구문 분석
HTML 페이지를 통해 구문 분석 할 수있는 좋은 라이브러리는 무엇입니까? 요소를 순환하여 각각을 채울 수 있습니다. someName
? C#, Python 또는 C++에서이 작업을 수행하려고합니다.
Xerces는 잘 문서화되고 지원되며 테스트되었습니다. (C++)
http://xerces.apache.org/xerces-c/
(예, 그것은 XML 파서입니다하지만 트릭해야한다)
내가 작업에 파이썬과 BeautifulSoup을 사용합니다. 이런 종류의 물건을 다룰 때 매우 견고합니다.
SoupStrainer을 사용하면 BeautifulSoup이 원하는 클래스가있는 문서에서 DIV를 구문 분석 만하도록 만들 수 있으므로 메모리에 전체를 가질 필요가 없습니다. 예를 들어
이 문서는 다음과 같습니다 말 :
<div class="test">Hello World</div>
<div class="hello">Aloha World</div>
<div>Hey There</div>
당신이 쓸 수 있습니다 :
>>> from BeautifulSoup import BeautifulSoup, SoupStrainer
>>> doc = '''
... <div class="test">Hello World</div>
... <div class="hello">Aloha World</div>
... <div>Hey There</div>
... '''
>>> findDivs = SoupStrainer('div', {'class':'hello'})
>>> [tag for tag in BeautifulSoup(doc, parseOnlyThese=findDivs)]
[<div class="hello">Aloha World</div>]
을 Html Agility Pack는 별 옵션은 C#
사운드를 사용하려는 경우 예전의 정규 표현식의 경우와 같습니다.
입력 :
<div class="test">Hello World</div>
<div class="somename">Aloha World</div>
<div>Hey There</div>
정규식 :
\<div\sclass\=\"somename\"\>(?<Text>.*?)\<\/div\>
수익률 :
Aloha World (note: In a single group named Text)
은 아마 REGULA와 비록
... 등없는 따옴표를 둘러싸 고려해야 r 표현은 이제 two problems입니다.
TinyXML 시도하십시오. (C++ XML 파서)
아이러니 좋다. 그러나, "do not do this"형태의 답변을 upvote하는 것은 쉽지 않습니다. –
... 덜 아이러니합니다. – Codebrain