Вызов lxml .xpath () из контекста PyV8 с неверным xpath приводит к сбою Python. Зачем? - PullRequest
1 голос
/ 19 марта 2012

Вызов lxml .xpath () из контекста PyV8 с неверным xpath приводит к сбою Python.Почему?

Есть ли способ использовать lxml, чтобы проверить, является ли s допустимым выражением xpath, прежде чем пытаться использовать его в вызове .xpath?

PS: дополнительная информация, если онарелевантно: я на Python 2.6, Win 7 32bit работает на MacBook (процессор Intel Core2 Duo P7450)

Скрипт для воспроизведения ошибки:

import PyV8
import urllib2
from lxml.html.soupparser import fromstring
c = PyV8.JSContext()
c.enter()
doc_text = urllib2.urlopen("http://sfbay.craigslist.org/roo/").read()
doc = fromstring(doc_text)
c.locals['doc'] = doc
output = c.eval("doc.xpath('bad expression');")

РЕДАКТИРОВАТЬ: Изменен заголовок и добавлен скрипт для воспроизведения ошибки.Первоначально вопрос был о том, почему ведущий символ «:» в выражении xpath вызвал ошибку, но проблема может быть вызвана любым недопустимым выражением xpath, когда xpath вызывается из контекста PyV8.

...