Python XML.DOM 및 BAD XML
-
18-09-2019 - |
문제
Python 프로그램을 사용하여 다양한 HTML 페이지에서 일부 데이터를 추출하려고합니다. 불행히도,이 페이지들 중 일부에는 사용자가 입력 한 데이터가 포함되어 있으며 때로는 "약간의"오류, 즉 태그 불일치가 있습니다.
Python의 XML.DOM이 오류 나 무언가를 수정하려고 시도하는 좋은 방법이 있습니까? 또는 오류가 포함될 수있는 HTML 페이지에서 데이터를 추출하는 더 좋은 방법이 있습니까?
다른 팁
나는 그런 작업에 BeautifulSoup을 사용했지만 이제는 html5lib (http://code.google.com/p/html5lib/) BeautifulSoup이 실패하는 많은 경우에 잘 작동합니다.
다른 대안은 사용하는 것입니다. "요소 수프" (http://effbot.org/zone/element-soup.htm) 요소 트리를 사용하여 아름다운 수프를위한 포장지입니다.
Jython이 귀하에게 허용되면 Tagsoup은 쓰레기를 파싱하는 데 매우 능숙합니다. 그렇다면 JDOM 라이브러리가 다른 XML 대안보다 훨씬 쉽게 사용하기 쉽다는 것을 알았습니다.
이것은 TFL의 Journey Planner의 스크린 스크래핑과 관련된 데모 모형의 스 니펫입니다.
private Document getRoutePage(HashMap params) throws Exception { String uri = "http://journeyplanner.tfl.gov.uk/bcl/XSLT_TRIP_REQUEST2"; HttpWrapper hw = new HttpWrapper(); String page = hw.urlEncPost(uri, params); SAXBuilder builder = new SAXBuilder("org.ccil.cowan.tagsoup.Parser"); Reader pageReader = new StringReader(page); return builder.build(pageReader); }
제휴하지 않습니다 StackOverflow