BeautifulSoup Python для разбора HTML-файлов - PullRequest
0 голосов
/ 14 сентября 2011

Я использую BeautifulSoup для замены всех запятых в html-файле на ‚. Вот мой код для этого:

f = open(sys.argv[1],"r")
data = f.read()

soup = BeautifulSoup(data)

comma = re.compile(',') 


for t in soup.findAll(text=comma):
        t.replaceWith(t.replace(',', '‚'))

Этот код работает, за исключением случаев, когда в html-файл включен некоторый javascript. В этом случае он даже заменяет запятую (,) на в коде JavaScript. Что не требуется. Я хочу заменить только текстовое содержимое HTML-файла.

1 Ответ

5 голосов
/ 14 сентября 2011

soup.findall можно взять на вызов:

tags_to_skip = set(["script", "style"])
# Add to this list as needed

def valid_tags(tag):
    """Filter tags on the basis of their tag names

    If the tag name is found in ``tags_to_skip`` then
    the tag is dropped.  Otherwise, it is kept.
    """
    if tag.source.name.lower() not in tags_to_skip:
        return True
    else:
        return False

for t in soup.findAll(valid_tags):
    t.replaceWith(t.replace(',', '‚'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...