안녕하세요 최근에 Python을 사용하기 시작했으며 xPath 비트와 함께 사용하기를 원합니다. 쿼리의 결과를 인쇄 할 때만 []을 왜 그런지 모르겠다 =Python XPath 결과 표시 전용 []
import libxml2, urllib
doc = libxml2.parseDoc(urllib.urlopen("http://www.domain.com/").read())
result = doc.xpathEval("//th//td[(((count(preceding-sibling::*) + 1) = 2) and parent::*)]//a")
if result != []:
print result
elif result == "":
print "null"
else:
print result
doc.freeDoc()
나는 []와는 아무런 오류가 없다. 뭐가 될수 있었는지? 나는 그것이 reaaaally 혼란을 찾을 수 있기 때문에 또한 하나 here보다 libxml2를위한 더 나은 문서 그래서 지금은 [] 내가 할 이상을 얻을 = S
편집
내가 코드를 변경있다 구문 분석하려고하는 html의 유효성과 관련이없는 다음 결과가 표시됩니다 (하지만 내 것이 아니므로 수정할 수는 없습니다). 그 사실을 더 용서하는 파이썬에게 말하는 방법에 대한 아이디어가 있습니까?
^ Entity: line 3552: parser error : Premature end of data in tag tr line 209
^ Entity: line 3552: parser error : Premature end of data in tag tbody line 208
^ Entity: line 3552: parser error : Premature end of data in tag table line 207
^ Entity: line 3552: parser error : Premature end of data in tag input line 206
^ Entity: line 3552: parser error : Premature end of data in tag input line 205
^ Entity: line 3552: parser error : Premature end of data in tag form line 204
^ Entity: line 3552: parser error : Premature end of data in tag table line 99
^ Entity: line 3552: parser error : Premature end of data in tag div line 98
^ Entity: line 3552: parser error : Premature end of data in tag body line 96
^ Entity: line 3552: parser error : Premature end of data in tag html line 3
^ Traceback (most recent call last): File "C:\Python26\lib\site-packages\libxml2.py", line 1263, in parseDoc if ret is None:raise parserError('xmlParseDoc() failed') libxml2.parserError: xmlParseDoc() failed
사실 더 긴 목록이지만 모든 오류는 유효하지 않은 html로 인한 것이므로 여기에 모두 넣어야합니다.
어떤 요소 것은 선택하려고? 어쩌면 우리가 무엇을하려고하는지 알면 문제를 파악하는 데 도움이 될 것입니다. –
당신은 어떤 th 안에있는 어떤 내부의 링크를 선택하려고 시도하고 있습니다. 그 일에 대해 확신합니까? – Boldewyn
... 그리고 libxml2 문서는 정말 끔찍합니다 :-) ( – Boldewyn