Программный поиск и изменение html на страницах моего сайта Plone

#plone

#plone

Вопрос:

Я хочу выполнить поиск по всем документам внутри довольно большого сайта Plone, которые содержат определенный фрагмент html в теле (элементы списка с заголовками внутри них, тьфу …), А затем изменить этот html (удалить заголовки).

Указания о том, как это сделать, очень ценятся!

Ответ №1:

Вы должны создать browserview (или запустить экземпляр в режиме отладки) и запустить этот код:

 from Products.CMFCore.utils import getToolByName
import re


ctool = getToolByName(context, 'portal_catalog')
results = ctool.searchResults(portal_type='Document')
for i in results:
    obj = i.getObject()
    text = obj.getField('text').get(obj)
    <find and remove your html using the regular expression module>
    obj.reindexObject()
  

Если вам нужно делать это много раз, вы можете попробовать добавить свой пользовательский индекс, который упростит работу.

Комментарии:

1. Спасибо! Могу ли я также использовать lxml.html для этого (поскольку форматирование html немного сложно уловить с помощью регулярного выражения). Есть ли документы о том, как использовать этот модуль внутри Plone?

2. Вот как включить его в свою компоновку: pypi.python.org/pypi/plone.recipe.lxml . После этого вы просто импортируете его в свой код и используете.

Ответ №2:

Я давно не пробовал, но проверил GoReplace