Найти - Пользователи
Полная версия: регулярки и unicode
Начало » Python для новичков » регулярки и unicode
1
gelius
Все в 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
Как с этим бороться?
py.user.next
Поставь u перед строкой.
gelius
Как я не ставлю 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"})
Но это не работает.
FishHook
А попробуйте так,

urls = urls.xpath(u'//img/ancestor::a[not(re:match(@href, "(слово|slovo)")) ]/@href', namespaces={"re": u"http://exslt.org/regular-expressions"})
не, ну мало ли куда Вам еще захочется
gelius
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
bismigalis
lxml.etree.XPathEvalError: Invalid expression

это уже не змеюка
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB