BeautifulSoup python解析html文件

时间:2011-09-14 19:00:00

标签: python beautifulsoup

我使用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 个答案:

答案 0 :(得分:5)

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(',', '‚'))