Python正则表达式从字符串中获取所有图像src'

问题描述 投票:-1回答:2

例如,如何使用python re获取所有图像src

a = "images src <img src=\"http://aa/6.png\" /> <img src=\"http://aa/7.png\" /> "

我想得到

data = {
'content': 'images src',
'src': ['http://aa/6.png', 'http://aa/7.png']
}

怎么做

python regex
2个回答
1
投票

可以用regex做到:

import re

data = {'content': 'images src',
        'src': re.findall('src="([^"]+)"', a)

输出:

{'content': 'images src', 'src': ['http://aa/6.png', 'http://aa/7.png']}

3
投票

使用美丽的东西,beautifulsoup

from bs4 import BeautifulSoup

a = "images src <img src=\"http://aa/6.png\" /> <img src=\"http://aa/7.png\" /> "
soup = BeautifulSoup(a, 'html.parser')
page_images = [image["src"] for image in soup.findAll("img")]
print(page_images)

因此使用dict来存储结果:

from bs4 import BeautifulSoup        
data = {}
a = "images src <img src=\"http://aa/6.png\" /> <img src=\"http://aa/7.png\" /> "
soup = BeautifulSoup(a, 'html.parser')
page_images = [image["src"] for image in soup.findAll("img")]

content = a.split("<")[0]
data['content'] = content
data['src'] = page_images

print(data)

OUTPUT:

{'content': 'images src ', 'src': ['http://aa/6.png', 'http://aa/7.png']}

但如果首选正则表达式:

import re

data = {}
a = "images src <img src=\"http://aa/6.png\" /> <img src=\"http://aa/7.png\" /> "
content = a.split("<")[0]

data['content'] = content
if re.search('src="([^"]+)"',a):
  data['src'] = re.findall ('src="(.*?)"', a, re.DOTALL)

print(data)

OUTPUT:

{'content': 'images src ', 'src': ['http://aa/6.png', 'http://aa/7.png']}
© www.soinside.com 2019 - 2024. All rights reserved.