無効な xpath を使用して PyV8 コンテキスト内から lxml の .xpath() を呼び出すと、Python がクラッシュします。なんで?
.xpath の呼び出しで使用する前に、lxml を使用して s が有効な xpath 式であるかどうかを確認する方法はありますか?
PS: 関連する場合の追加情報: 私は Macbook (Intel の Core2 Duo P7450 CPU) で実行されている Python 2.6、Win 7 32 ビットを使用しています。
エラーを再現するスクリプト:
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 が PyV8 コンテキスト内から呼び出されたときに無効な xpath 式が原因で問題が発生する可能性があります。