Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在HTML文件中查找所有*渲染*图像_Python_Html_Regex_Parsing - Fatal编程技术网

Python 在HTML文件中查找所有*渲染*图像

Python 在HTML文件中查找所有*渲染*图像,python,html,regex,parsing,Python,Html,Regex,Parsing,我需要一种在HTML片段中只查找呈现的IMG标记的方法。因此,我不能只对HTML片段进行正则化以查找所有IMG标记,因为我还可以得到在HTML中显示为文本的IMG标记(未呈现) 我在AppEngine上使用Python 有什么想法吗 谢谢, Ivan呈现的img标记的源代码如下: <img src="img.jpg"></img> &lt;img src=&quot;styles/BWLogo.jpg&quot;&gt;&lt;

我需要一种在HTML片段中只查找呈现的IMG标记的方法。因此,我不能只对HTML片段进行正则化以查找所有IMG标记,因为我还可以得到在HTML中显示为文本的IMG标记(未呈现)

我在AppEngine上使用Python

有什么想法吗

谢谢,
Ivan

呈现的img标记的源代码如下:

<img src="img.jpg"></img>
 &lt;img src=&quot;styles/BWLogo.jpg&quot;&gt;&lt;/img&gt;
是“”字符

要仅匹配渲染的img标记,可以使用正则表达式匹配由<和>,而不是<代码>和<代码>构成的img标记


注释中的Img标记也需要通过在“

之间插入字符来忽略。呈现的Img标记的源代码如下所示:

<img src="img.jpg"></img>
 &lt;img src=&quot;styles/BWLogo.jpg&quot;&gt;&lt;/img&gt;
是“”字符

要仅匹配渲染的img标记,可以使用正则表达式匹配由<和>,而不是<代码>和<代码>构成的img标记


注释中的Img标记也需要通过在“

之间插入字符来忽略,因为图像标记可能位于某些标记或标记之间,您可能需要遍历dom(=将html转换为xml/dom树并在其中搜索)并查找所有节点。python标准库中有一个xml.dom类:

>>> from BeautifulSoup import BeautifulSoup
>>> doc = """
... <html>
... <body>
... <img src="test.jpg">
... &lt;img src="yay.jpg"&gt;
... <!-- <img src="ohnoes.jpg"> -->
... <img src="hurrah.jpg">
... </body>
... </html>
... """
>>> soup = BeautifulSoup(doc)
>>> soup.findAll('img')
[<img src="test.jpg" />, <img src="hurrah.jpg" />]

您也可以在客户机上这样做,并通过ajax报告(这意味着服务器上会有更多的负载)。

由于图像标记可能位于一些或标记之间,您可能需要遍历dom(=将html转换为xml/dom树并搜索),然后查找所有节点。python标准库中有一个xml.dom类:

>>> from BeautifulSoup import BeautifulSoup
>>> doc = """
... <html>
... <body>
... <img src="test.jpg">
... &lt;img src="yay.jpg"&gt;
... <!-- <img src="ohnoes.jpg"> -->
... <img src="hurrah.jpg">
... </body>
... </html>
... """
>>> soup = BeautifulSoup(doc)
>>> soup.findAll('img')
[<img src="test.jpg" />, <img src="hurrah.jpg" />]
您也可以在客户机上这样做,并通过ajax报告(这意味着服务器上会有更多负载)。

使用。它是一个用于Python的HTML/XML解析器,提供了导航、搜索和修改解析树的简单、惯用的方法。它可能不会被虚假的img标签弄错。

使用。它是一个用于Python的HTML/XML解析器,提供了导航、搜索和修改解析树的简单、惯用的方法。它可能不会被虚假的img标签弄错。

听起来像是一份工作:

>>从BeautifulSoup导入BeautifulSoup
>>>doc=”“”
... 
... 
... 
…img src=“yay.jpg”
... 
... 
... 
... 
... """
>>>汤=美汤(doc)
>>>soup.findAll('img'))
[, ]
如您所见,BeautifulSoup足够聪明,可以忽略注释和显示的HTML

编辑:但我不确定你所说的转义所有图像的RSS提要是什么意思。我不希望BeautifulSoup知道如果他们都逃脱了,应该显示哪些内容。你能澄清一下吗?

听起来像是针对以下人员的工作:

>>从BeautifulSoup导入BeautifulSoup
>>>doc=”“”
... 
... 
... 
…img src=“yay.jpg”
... 
... 
... 
... 
... """
>>>汤=美汤(doc)
>>>soup.findAll('img'))
[, ]
如您所见,BeautifulSoup足够聪明,可以忽略注释和显示的HTML


编辑:但我不确定你所说的转义所有图像的RSS提要是什么意思。我不希望BeautifulSoup知道如果他们都逃脱了,应该显示哪些内容。你能澄清一下吗?

“我也会得到在HTML中显示为文本的IMG标记”-你能解释一下/举个例子吗?我不知道你这是什么意思。你是说你想要的图像不是404的吗?那些不在隐藏div中的?哦,我知道这是另一个html正则表达式问题。在一些网页上,会显示一些代码片段,这些代码片段中有IMG标记。所以这些IMG标签不会呈现为图像,它们只是显示为文本。断开的URL和隐藏的图像不是问题。“我也会得到在HTML中显示为文本的IMG标记”-你能解释一下/举个例子吗?我不知道你这是什么意思。你是说你想要的图像不是404的吗?那些不在隐藏div中的?哦,我知道这是另一个html正则表达式问题。在一些网页上,会显示一些代码片段,这些代码片段中有IMG标记。所以这些IMG标签不会呈现为图像,它们只是显示为文本。损坏的URL和隐藏的图像不是问题。是的,你是对的。我认为对于评论,你可以使用正则表达式来忽略“”之间的任何字符是的,你是对的。我认为对于评论,您可以使用正则表达式来忽略“”之间的任何字符。谢谢!我要试一试。这个场景实际上有点复杂——我正在解析RSS内容片段,其中包含“谢谢!我要试一试。这个场景实际上有点复杂——我正在解析RSS内容片段,其中包含所有