Форум сайта python.su
0
Все в utf-8, прописано
coding: utf-8
urls = urls.xpath('//img/ancestor::a[not(re:match(@href, "(слово)")) ]/@href', namespaces={"re": "http://exslt.org/regular-expressions"}) File "lxml.etree.pyx", line 1444, in lxml.etree._Element.xpath (src/lxml/lxml.etree.c:41726) File "xpath.pxi", line 308, in lxml.etree.XPathElementEvaluator.__call__ (src/lxml/lxml.etree.c:117742) File "apihelpers.pxi", line 1366, in lxml.etree._utf8 (src/lxml/lxml.etree.c:22068) ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters
Офлайн
857
Поставь u перед строкой.
Офлайн
0
Как я не ставлю u, или проблема с синтаксисом или с кодировкой. Кроме того в финальной версии перечисление:
urls = urls.xpath('//img/ancestor::a[not(re:match(@href, "(слово|slovo)")) ]/@href', namespaces={"re": "http://exslt.org/regular-expressions"})
urls = urls.xpath('//img/ancestor::a[not(re:match(@href, u"(слово|slovo)")) ]/@href', namespaces={"re": "http://exslt.org/regular-expressions"})
Офлайн
568
А попробуйте так,
urls = urls.xpath(u'//img/ancestor::a[not(re:match(@href, "(слово|slovo)")) ]/@href', namespaces={"re": u"http://exslt.org/regular-expressions"})
Отредактировано FishHook (Июль 24, 2014 20:20:51)
Офлайн
0
FishHookК сожалению приходится делать то, что хочется змеюке
не, ну мало ли куда Вам еще захочется

File "lxml.etree.pyx", line 1444, in lxml.etree._Element.xpath (src/lxml/lxml.etree.c:41726) File "xpath.pxi", line 321, in lxml.etree.XPathElementEvaluator.__call__ (src/lxml/lxml.etree.c:117867) File "xpath.pxi", line 239, in lxml.etree._XPathEvaluatorBase._handle_result (src/lxml/lxml.etree.c:117044) File "xpath.pxi", line 225, in lxml.etree._XPathEvaluatorBase._raise_eval_error (src/lxml/lxml.etree.c:116913) lxml.etree.XPathEvalError: Invalid expression
Отредактировано gelius (Июль 24, 2014 21:27:16)
Офлайн
47
lxml.etree.XPathEvalError: Invalid expression
это уже не змеюка
Офлайн