문제

C#을 사용하여 오르플 링 된 HTML을 어떻게 수리합니까? 큰 대답은 HTML 민첩성 팩 샘플입니다!


나는 (합법적 인 용도로) 사이트를 긁고 있습니다. 사이트의 HTML은 괜찮지 만 몇 가지 성가신 문제가 있습니다.

내가 갈 수있는 한 가지 방법은 정규 표현을 통한 것입니다. Expression Web을 사용하여 문제와 문제를 해결하는 데 필요한 정규식을 분석했습니다. 한 가지 방법은 다음과 같은 도구를 사용하는 것입니다. RegexBuddy 이러한 정규식에 대한 C# 코드를 생성합니다.

그러나 C#에서 오르 포맷 된 HTML을 처리하기위한 권장 도구는 HTML 민첩성 팩 (우연). 또한 소수의 페이지 만 분석했으며 미래의 페이지가 아직 해결되지 않은 패턴이 포함되어 있을까 걱정되며 "다음 몇 페이지에서 오류를 찾아 수정하는"유지 보수를 입력하는 것을 싫어합니다. 사업. 따라서 HAP에 이미 견고하고 항상 작업하는 솔루션이 있다면 이것은 좋을 것입니다. 문제는 여기에 몇 가지 언급을 제외하고는이 도구에 대한 사용 방법 문서를 찾을 수 없다는 것입니다.

그래서 - regexbuddy (무료 평가 버전 없음)에서 $와 시간을 배우기 전에 HAP의 API 문서에서 치아를 깨뜨리기 전에 쉽게 수행 할 수있는 방법이 있습니까? HAP 샘플이 도움이 될 것입니다 ... :-)

도움이 되었습니까?

해결책 2

내가 여기서 답을 얻은 내용 : 1) 제어하지 않는 웹 사이트를 긁어 내고 있다면 항상 페이지의 레이아웃을 스크래프 할 때마다 스크레이퍼를 수정 해야하는 유지 보수 모드로 들어갈 수 있습니다. . 2)이 알려진 사이트로 제한되어 있다면 문제를 조정하기 위해 스크레이퍼를 작성하지 않겠습니까?

따라서 유지 보수 모드로 들어가야한다면 가능한 한 쉬워야합니다. 따라서 내 프로세스는 다음과 같습니다.

  1. 나는 사용한다 Webius의 swexplorerautomation 웹 페이지에서 장면을 감지합니다. 아이디어는 장면이 IE에 대해 정의하는 조건 모음이라는 것입니다. 웹 페이지가로드되면 IE는 어떤 조건 세트가 충족되는지 확인하려고 시도합니다 (예 : 페이지 제목은 "계정 로그인"입니다. 페이지에는 "로그인"텍스트 상자에 "비밀번호"텍스트 상자가 포함되어 있습니다). 장면에 해당하는 일련의 조건이 감지되면 IE는 장면이 감지되었다고보고합니다. 이 모델은 추상화 계층을 제공합니다. 웹 페이지의 일부 변경 사항은 장면 파일의 변경으로 변환되어 코드가 변경되지 않도록 저장할 수 있습니다. 또한, 이것은 IE의 이벤트 중심 모델에서 나를 보호합니다 : 나는 "장면을 호출합니다. 나는이 제품을 평가하고 있지만 아직 사용할지 확실하지 않습니다. 주로 문서가 끔찍하기 때문에 다른 대안은 다음과 같습니다. Watin, 그리고 내가 아직 Swea를 구입하지 않은 또 다른 이유는 이 기사 Watin에 대한 스팸에 대한 저자를 비난했습니다.
  2. 웹 페이지가 획득되면 Expression Web을 사용하여 호환성 검사를 실행하고 오류를 식별합니다.
  3. 나는 사용한다 RegexMagic 오류를 제거하고 수정합니다. 나는이 도구를 정말 좋아합니다. 물론, 때때로 그것은 당신이 정말로 쉽게해야 할 일을 할 수 없기 때문에 살인 적으로 화를냅니다. 그러나 그것은 달콤하고 달콤한 도구이며, 문서는 놀랍습니다.
  4. 마지막으로, 내가 아는 모든 오류가 수정 된 후에 HTML 민첩성 팩을 사용하여 XHTML로 변환합니다. TS를 가로 지르고 IS를 가로 지르십시오.

도움이 되었기를 바랍니다!

아비

다른 팁

어떤 성가신 문제가 있는지 말해 줄 수 있습니까?
그러나 HTML을 청소하기 위해 Regex를 사용할 필요는 없으며 HAP를 사용하면 XPath 쿼리를 사용하여 기형 HTML의 요소에 액세스 할 수 있습니다.
그리고 기본적으로 원하는 HTML 요소를 얻는 방법을 알기 위해 XPath를 배워야합니다.
그것은 당신이 HAP를 사용하여 구문 분석하는 HTML의 종류에 달려 있습니다.
그러나 요소를 얻는 방법에는 여러 가지가 있습니다.
ID 또는 클래스와 같이 "이름 :"과 같은 주어진 텍스트를 포함하는 다른 요소를 따르는 요소를 얻을 수 있습니다.
당신은 할 수 있습니다 W3 학교 XPATH 튜토리얼 멋진 XPath 튜토리얼을 위해

REGEX는 HTML 청소에 사용할 수 없습니다. 하다 http://tidy.sourceforge.net/ 도움이 되나요?

제어하지 않는 웹 사이트를 긁는 경우 페이지의 레이아웃이 변경 될 때마다 스크레이퍼를 수정 해야하는 유지 보수 모드가 항상 입력됩니다. REGEX를 사용하는 것은 중요하지 않습니다u003Ctd color="red"> d+u003C/td> 페이지에서 큰 빨간색 번호를 얻거나 DOM 파서를 사용하여 ID 번호가있는 두 번째 행에 3 번째 셀을 가져와 동일하게 얻습니다. 웹 마스터가 색상 속성을 클래스 속성으로 대체하면 regex가 끊어집니다. 웹 마스터가 테이블 상단에 다른 행을 추가하면 DOM 파서가 끊어집니다.

웹 페이지의 더 큰 부분을 긁어 내고 자신의 웹 페이지에 포함시키려는 경우 웹 표준 준수에 대한 욕구를 극복하고 브라우저가 사물을 표시하는 방법을 알아내는 것이 더 쉬울 수 있습니다.

HTML 민첩성 팩을 사용하고 발생하는 문제를 알고 있기 때문에이 알려진 사이트로 제한 된 경우 HTMLDocument를로드했을 때 문제를 조정하도록 스크레이퍼를 작성하지 않겠습니까?

IE : 요소가 항상 나타나면 요소를 태그의 첫 번째 자식 위치에 삽입합니다 .....

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top