方式一:正则
import re
a = '<p> <img src="/bigdata/img/quick/507885d47b02402c9fc2800ef155b991.jpeg" /> </p> <p>
据俄罗斯卫星通讯社报道,俄罗斯国防部叙利亚和解中心称,当地时间8月10日和11日两天,武装分子
袭击了叙利亚政府军阵地,造成23名叙利亚军人死亡,7人受伤。 </p> <p> 俄罗斯国防部叙利亚和解
中心称:“叙利亚政府军击退了恐怖组织武装分子发动的所有袭击,武装分子损失惨重。在击退恐怖组
织武装分子袭击的行动中,共有23名叙利亚政府军的军人被杀害,另有7人受伤。” </p> <p>
<img src="/bigdata/img/quick/dc580d63f77d423c9befa775e9f09806.jpeg" /> </p> <p> 俄罗斯国防部叙
利亚和解中心早前表示,在击退叙利亚伊德利卜省激进分子的袭击过程中,至少有10名叙利亚政府军
士兵死亡,21人受伤。8月9日早些时候,几个非法组织的武装分子在对阿布达利(Abu Dali)居民点
附近的叙利亚政府军单位发动攻击前,用迫击炮弹炮击该位置。 </p> <p>
<img src="/bigdata/img/quick/1dcc11069a7a49e5b00b7fab98104dd9.jpeg" /> </p> <p> 8月5日,叙利亚
宣布,在叙利亚西北部地区的激进分子不遵守俄罗斯和土耳其达成的停火协议之后,叙利亚军队将恢
复在叙利亚西北部的军事行动。 </p>'
print(re.findall(r'<img src="(.*?)" /> ', a))
方式二:xpath解析
from lxml import etree
a = '<p> <img src="/bigdata/img/quick/507885d47b02402c9fc2800ef155b991.jpeg" /> </p> <p>
据俄罗斯卫星通讯社报道,俄罗斯国防部叙利亚和解中心称,当地时间8月10日和11日两天,武装分子
袭击了叙利亚政府军阵地,造成23名叙利亚军人死亡,7人受伤。 </p> <p> 俄罗斯国防部叙利亚和解
中心称:“叙利亚政府军击退了恐怖组织武装分子发动的所有袭击,武装分子损失惨重。在击退恐怖组
织武装分子袭击的行动中,共有23名叙利亚政府军的军人被杀害,另有7人受伤。” </p> <p>
<img src="/bigdata/img/quick/dc580d63f77d423c9befa775e9f09806.jpeg" /> </p> <p> 俄罗斯国防部叙
利亚和解中心早前表示,在击退叙利亚伊德利卜省激进分子的袭击过程中,至少有10名叙利亚政府军
士兵死亡,21人受伤。8月9日早些时候,几个非法组织的武装分子在对阿布达利(Abu Dali)居民点
附近的叙利亚政府军单位发动攻击前,用迫击炮弹炮击该位置。 </p> <p>
<img src="/bigdata/img/quick/1dcc11069a7a49e5b00b7fab98104dd9.jpeg" /> </p> <p> 8月5日,叙利亚
宣布,在叙利亚西北部地区的激进分子不遵守俄罗斯和土耳其达成的停火协议之后,叙利亚军队将恢
复在叙利亚西北部的军事行动。 </p>'
print(etree.HTML(a).xpath('//img/@src'))
结果:
['/bigdata/img/quick/507885d47b02402c9fc2800ef155b991.jpeg',
'/bigdata/img/quick/dc580d63f77d423c9befa775e9f09806.jpeg',
'/bigdata/img/quick/1dcc11069a7a49e5b00b7fab98104dd9.jpeg']
['/bigdata/img/quick/507885d47b02402c9fc2800ef155b991.jpeg',
'/bigdata/img/quick/dc580d63f77d423c9befa775e9f09806.jpeg',
'/bigdata/img/quick/1dcc11069a7a49e5b00b7fab98104dd9.jpeg']
内容加解密
对上述内容进行图片加密
from cykj.settings import mykeys
from lxml import etree
def format_content_img(text):
"""将内容中的图片抽取出来进行加密更换路由,并返回给前端"""
e = etree.HTML(text).xpath('//img/@src')
for i in e:
text = text.replace(i, 'http://192.168.0.140:8000/news/api_img/?path=' + mykeys.encrypt(
''.join(i.split('img/')[-1])) + ".jpg")
return text