HTML 스크래핑 옵션? [닫은]

HTML 스크래핑을위한 Python 패키지 인 Beautiful Soup 을 시도하고 있습니다. 살펴 봐야 할 다른 HTML 스크래핑 패키지가 있습니까? 파이썬은 요구 사항이 아니며 실제로 다른 언어에 대해서도 듣고 싶습니다.

지금까지의 이야기:



답변

Beautiful Soup에 해당하는 Ruby 세계는 why_the_lucky_stiff의 Hpricot 입니다.


답변

.NET 세계에서는 HTML Agility Pack을 권장합니다. 위의 옵션 중 일부 (HTMLSQL과 같은)만큼 단순하지는 않지만 매우 유연합니다. 제대로 구성된 XML 인 것처럼 잘못 구성된 HTML을 조작 할 수 있으므로 XPATH를 사용하거나 노드를 반복 할 수 있습니다.

http://www.codeplex.com/htmlagilitypack


답변

BeautifulSoup은 HTML 스크래핑을위한 좋은 방법입니다. 저의 이전 직업은 많은 긁기 작업을했고 시작했을 때 BeautifulSoup에 대해 알고 싶습니다. 훨씬 더 유용한 옵션을 가진 DOM과 같으며 훨씬 더 파이썬입니다. Ruby를 사용하려면 BeautifulSoup을 RubyfulSoup이라고 포팅했지만 한동안 업데이트되지 않았습니다.

다른 유용한 도구로는 표준 Python 라이브러리의 일부인 HTMLParser 또는 sgmllib.SGMLParser가 있습니다. 태그를 입력 / 종료하고 html 텍스트가 나타날 때마다 메소드를 호출하여 작동합니다. 익숙하다면 해외 거주자와 같습니다. 이 라이브러리는 매우 큰 파일을 구문 분석하고 DOM 트리를 작성하는 것이 길고 비용이 많이 드는 경우에 특히 유용합니다.

정규 표현식은 그다지 필요하지 않습니다. BeautifulSoup은 정규 표현식을 처리하므로 힘이 필요하면 거기서 사용할 수 있습니다. 속도와 더 작은 메모리 공간이 필요하지 않으면 BeautifulSoup을 사용한다고 말합니다. 파이썬에서 더 나은 HTML 파서를 찾으면 알려주십시오.


답변

HTMLSQL을 찾았 습니다 이 엄청나게 간단한 스크린 방법이라는 습니다. 결과를 얻는 데 문자 그대로 몇 분이 걸립니다.

쿼리는 다음과 같이 직관적입니다.

SELECT title from img WHERE $class == 'userpic'

동일한 접근법을 취하는 다른 대안이 있습니다.


답변

Python lxml 라이브러리는 libxml2 및 libxslt 라이브러리에 대한 Pythonic 바인딩 역할을합니다. 특히 XPath 지원과 메모리 내 XML 구조의 인쇄가 마음에 듭니다. 또한 깨진 HTML 구문 분석을 지원합니다. 그리고 lxml보다 XML을 더 빨리 구문 분석하는 다른 Python 라이브러리 / 바인딩을 찾을 수 없다고 생각합니다.


답변

Perl의 경우 WWW :: Mechanize가 있습니다.


답변

Python에는 Beatiful Soup 외에도 HTML 스크랩에 대한 몇 가지 옵션이 있습니다. 여기 다른 것들이 있습니다 :

  • 기계화 : perl과 유사합니다 WWW:Mechanize. 웹 페이지와 무관 한 객체와 같은 브라우저를 제공합니다
  • lxml :에 대한 파이썬 바인딩 libwww. 요소를 탐색하고 선택할 수있는 다양한 옵션 지원 (예 : XPath 및 CSS 선택)
  • scrapemark : 템플릿을 사용하여 HTML에서 정보를 추출하는 고급 라이브러리.
  • pyquery : XML 문서에서 jQuery와 같은 쿼리를 만들 수 있습니다.
  • scrapy : 고급 스크래핑 및 웹 크롤링 프레임 워크 스파이더 작성, 데이터 마이닝 및 모니터링 및 자동화 된 테스트에 사용될 수 있습니다.