2017-02-20 26 views
0

Мне нужно вставить такой скрипт в мой HTML. Я использую LXML разобрать в дерево, а затем добавить новый элемент сценария следующим образом:Как вставить JavaScript в lxml?

<body> 
    <script type="text/javascript"> 
    window.location="http://www.example.com/?one&two&three" 
    </script> 

Вот результат я хочу, но вместо этого амперсанды спасшиеся от записи. Есть ли способ получить то, что я хочу, используя lxml?

<body> 
    <script type="text/javascript"> 
    window.location="http://www.example.com/?one&amp;two&amp;three" 
    </script> 

ответ

1

Я думаю, что проблема связана с сериализации

>>> from lxml import etree, html 
>>> script = etree.Element('script') 
>>> script.text = 'window.location="http://www.example.com/?one&two&three"' 
>>> etree.tostring(script) 
b'<script>window.location="http://www.example.com/one&amp;two&amp;three"</script>' 
>>> html.tostring(script) 
b'<script>window.location="http://www.example.com/?one&two&three"</script>' 

мой питона версии 3.5 и LXML == 3.7.3

+0

Я никогда не думал об этом, спасибо. Я использую python2.7, но он работает одинаково. Кроме того, это работает: etree.tostring (script, method = 'html) – Tim

 Смежные вопросы

  • Нет связанных вопросов^_^