从具有无效xpath的PyV8上下文中调用lxml的.xpath()会导致Python崩溃。为什么呢?
有没有办法在尝试在调用.xpath之前使用lxml来检查s是否是有效的xpath表达式?
P.S。:有关它的相关信息:我使用的是Python 2.6,在Macbook上运行的Win 7 32位(Intel的Core2 Duo P7450 CPU)
重现错误的脚本:
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表达式中的前导':'字符导致错误,但是当从PyV8上下文中调用xpath时,问题可能是由任何无效的xpath表达式引起的。