2012-10-17 1 views
2

저는 .NET 프로그래머입니다. 웹 스크래핑 프로젝트에서 작업해야합니다. HTMLAgilityPack 대 BeautifulSoup에 대한 아이디어를 얻고 싶습니다.C# 프로그래머 용 웹 스크래핑 (HTMLAgilityPack 또는 Python + beautifulsoup)에 대한 더 나은 옵션

많은 사람들이 BeautifulSoup이 HTMLAgilityPack보다 훨씬 뛰어나다 고 말합니다. 하지만이를 위해서는 파이썬을 배워야합니다.

제 질문은 Python과 BeautifulSoup을 배우거나 C#과 HTMLAgilityPack을 계속 사용하는 것이 합리적입니까?

다른 제안 사항이 있으면 언제든지 환영합니다.

+0

BeautifulSoup이 더 이상 지원되지 않는다고 (작동하지 않는다는 의미는 아닙니다). –

답변

0

C# .NET 세계에서는 매우 유연하기 때문에 HTMLAgilityPack을 권하고 싶습니다. 제대로 구성된 XML 인 것처럼 잘못 구성된 HTML을 조작 할 수 있으므로 XPath를 사용하거나 노드를 반복 할 수 있습니다. HTML Agility Pack

  • BeautifulSoup로 근근이 HTML에 대한하지만, 개발자의 관점에서 갈 수있는 좋은 방법입니다, 완전히 새로운 기술을 손에 얻을 정말 쉽지 않다. 그래서 당신이 .NET 사람이라면 HTMLAgilityPack을 강력히 추천 할 것입니다.

    당신은 HTML Agility Pack의 조합, 정규 표현식으로 큰 성공을 얻을 수 있고,하여 XDocument LINQ and lambda (part 3) - HTML Agility Pack 날에 매여있어 비제이 Santhanam에 의해 블로그 게시물입니다 - (LINQ -> XMLy 물건)

    그것은 extremley 강력 그것.

+0

2015/03/05로 LINQ 및 Lambda 링크가 끊어졌습니다. –

5

CsQuery은 내가 만든 라이브러리로 Html Agility Pack에 비해 상대적으로 새로운 대안입니다. 그것은 다음과 같은 장점이 있습니다 :

  • 전체 CSS3 선택 지원, 대부분의 사람들이 이미 XPath는보다 친숙하고 훨씬 더 쉽게, 당신은 이미 클라이언트
  • JQuery와 API 코딩 봤는데 같은 방식으로, 동일한 이유로
  • HTML 구문 분석기, HTML5 호환 파서를 사용합니다. 이 코드베이스는 Gecko 기반 브라우저 (Firefox)에서 사용되는 것과 동일한 코드 기반으로 일반적으로 불량/유효하지 않은 태그에 대해서도 웹 브라우저와 동일한 DOM을 생성해야합니다.
  • 매우 큰 문서에서도 매우 빠르게 선택기를 만드는 색인 문서입니다. HAP는 각 선택기에 대한 전체 문서 트리를 탐색해야하므로 복잡한 선택기와 큰 문서의 경우 매우 느립니다.
  • 광범위한 단위 테스트 커버리지 - jQuery 및 Sizzle (jQuery CSS 선택 엔진)의 모든 테스트가 C#으로 포팅되었습니다.

단점 : HAP가 가지고있는 반면

  • 은 지금에만 작동

    는 .NET 4+ 전체 프레임 워크를 컴파일 대부분의 .NET 환경 구축합니다.

너겟에서 얻을 수 있습니다 : Install-Package CsQuery.