我需要一种方法,在片段中只找到呈现的IMG标记。所以,我不能仅仅用HTML片段来查找所有的IMG标记,因为我还会得到在HTML中显示为文本的IMG标记(而不是呈现的)。
我在AppEngine上使用Python。
有什么想法吗?
谢谢,伊凡
发布于 2009-04-07 18:51:01
听起来像是BeautifulSoup的工作
>>> from BeautifulSoup import BeautifulSoup
>>> doc = """
... <html>
... <body>
... <img src="test.jpg">
... <img src="yay.jpg">
... <!-- <img src="ohnoes.jpg"> -->
... <img src="hurrah.jpg">
... </body>
... </html>
... """
>>> soup = BeautifulSoup(doc)
>>> soup.findAll('img')
[<img src="test.jpg" />, <img src="hurrah.jpg" />]如您所见,BeautifulSoup足够聪明,可以忽略注释和显示的HTML。
编辑:不过,我不知道你所说的转义所有图片的RSS是什么意思。我不希望BeautifulSoup知道,如果它们全部逃脱了,那么应该显示哪些内容。你能澄清一下吗?
发布于 2009-04-07 14:11:57
呈现img标记的源代码如下所示:
<img src="img.jpg"></img>如果img标记显示为文本(未呈现),则html代码如下所示:
<img src="styles/BWLogo.jpg"></img><是"<“字符,>是">”字符
要匹配呈现的img标记,可以使用regex来匹配由< and >形成的img标记,而不是<和>
注释中的Img标记也需要通过在"<!--“和"-->”之间添加字符来忽略。
发布于 2009-04-07 18:31:30
使用BeautifulSoup。它是Python的HTML/XML解析器,提供了简单、惯用的导航、搜索和修改解析树的方法。可能不会被假的img标签弄错。
https://stackoverflow.com/questions/725756
复制相似问题