python - 正则表达式以查找各种格式/标签的图像

标签 python regex python-3.x

我需要一个可在网站源代码中找到图像的正则表达式。到目前为止,我有:

images = re.findall(r'src=[\"|\']([^\"|\']+)[\"|\']',webpage.decode())
images.sort()
print (f'[+] {len(images)} images Found:')
for image in images:
    print(image)


这一直在寻找以下格式的图像:

<img src="2001-a-space-odyssey.JPG"/>

<img src="http://www.example.com/content/icon.gif"/>

但找不到以下格式的图像:

<form action="example.jpg">

<!-- <img src="big.jpg" /> -->

background-image:url("xine.png");

我需要一个正则表达式来查找所有这些,但是,我不希望像png|jpeg|gif这样的表达式。

最佳答案

如果您对图像格式不那么在意,那么下面的表达式应该可以很好地完成您的工作:

pattern = "[\"|\'].*\.(?i:jpg|gif|png|bmp)[\"|\']"
images = re.findall(pattern,webpage.decode())


我在这里我会忽略这种情况。

编辑:

pattern : "[\=,\(][\"|\'].[^\=\"]+\.(?i:jpg|gif|png|bmp)[\"|\']"


注意:从匹配中删除前两个字符和最后一个字符应提供所需的输出

您可以在这里查看各种图像格式:Image file formats

希望这可以帮助 :)

关于python - 正则表达式以查找各种格式/标签的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47554080/

相关文章:

java - 使用 Java 正则表达式解析服务响应

regex - perl中用-e和正则表达式匹配的文件名

python - 在 Python 3 中使用 for 循环查找字符串中的值

python - numpy 在另一个数组中创建最大连续对的数组

python - 添加列表的元素

java - 正则表达式将其单独或与 'else' 单词一起转换为大括号

python - 对象的描述符 '__dict__' 不适用于使用 type() 的对象

java - 尝试使用Python从遗留软件解析文件(mmp格式)

python - 动态添加字段的 django 表单集可以具有持久数据吗?

python - 为函数中的异常引发自定义消息