2017-05-20 7 views
0

웹 스파이더로 실행되는 Python (3.6) 스크립트가 있습니다. 그것은 페이지의 내용을 잡고, 링크를 추출하고 그들을 크롤 링합니다. 내가가 실행 반면에 올 수있는 각 오류에 사용자 지정 응답을 만들기 위해 노력하고전체 모듈을 가져 오지 않고 lxml 오류를 처리하는 방법은 무엇입니까?

from lxml import html 

를 사용하여 가져 오기 링크를 처리 할 lxml.html를 사용합니다. 현재 유니 코드, SSL, 리디렉션, 연결 및 ContentDecode 오류를 처리하고 있습니다. 나는 lxml.etree.XMLSyntaxErrorlxml.etree.XMLParseError을 많이 봤다. except-blocks을 통해 전달하려고 시도했지만, 전체 모듈 대신 lxml.html 만 가져 오기 때문에 NameError: name 'lxml' is not defined으로 실행되면 항상 중단됩니다.

전체 모듈을 가져 오지 않고 오류를 잡을 수있는 방법이 있습니까?

답변

0

etree.(Error)을 통해 lxml 오류에 액세스 할 수 있습니다. 즉, etree.XMLSyntaxErroretree.ParseError.

from lxml import etree 

LXML 또한 etree 모듈 내의 모든 오브젝트를 자세히 a nice page있다.