关于#python#的问题:如何用正则取图片地址

如何用正则取图片地址

我只需要这个格式的
https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg
 

<div moduleId='R1901001_3' moduleName='商品详情'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg" alt="" />p>div><div moduleId='R1901001_5' moduleName='常见问题'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/8YDP8GuVWzJ_28zN-mzn5w.jpg" alt="" />p>div><div moduleId='R1901001_6' moduleName='售后服务'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/Vx3s5KLQD46FmOUgGAXP5Q.jpg" alt="" />p>div>



z = '''
<div moduleId='R1901001_3' moduleName='商品详情'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg" alt="" /></p></div><div moduleId='R1901001_5' moduleName='常见问题'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/8YDP8GuVWzJ_28zN-mzn5w.jpg" alt="" /></p></div><div moduleId='R1901001_6' moduleName='售后服务'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/Vx3s5KLQD46FmOUgGAXP5Q.jpg" alt="" /></p></div>

'''

import re

print(re.findall('https?://[^"]+?\.(?:jpe?g|gif|png)(?=")',z))


import re

html = "<div moduleId='R1901001_3' moduleName='商品详情'><p><img src2=\"https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg\" alt=\"\" /></p></div><div moduleId='R1901001_5' moduleName='常见问题'><p><img src2=\"https://uimgproxy.suning.cn/uimg1/sop/commodity/8YDP8GuVWzJ_28zN-mzn5w.jpg\" alt=\"\" /></p></div><div moduleId='R1901001_6' moduleName='售后服务'><p><img src2=\"https://uimgproxy.suning.cn/uimg1/sop/commodity/Vx3s5KLQD46FmOUgGAXP5Q.jpg\" alt=\"\" /></p></div>"
pattern = re.compile(r'src2="(.+?)"')
img_urls = re.findall(pattern, html)

print(img_urls)

输出:


['https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg', 'https://uimgproxy.suning.cn/uimg1/sop/commodity/8YDP8GuVWzJ_28zN-mzn5w.jpg', 'https://uimgproxy.suning.cn/uimg1/sop/commodity/Vx3s5KLQD46FmOUgGAXP5Q.jpg']

其中,pattern 是用来匹配图片地址的正则表达式,re.findall() 函数会返回所有匹配到的字符串组成的列表。

import re
 
s="""<div moduleId='R1901001_3' moduleName='商品详情'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg" alt="" /></p></div><div moduleId='R1901001_5' moduleName='常见问题'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/8YDP8GuVWzJ_28zN-mzn5w.jpg" alt="" /></p></div><div moduleId='R1901001_6' moduleName='售后服务'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/Vx3s5KLQD46FmOUgGAXP5Q.jpg" alt="" /></p></div>"""

match = re.findall(r'<img src2="(.*?)" ', s)
print(match)

有帮助的话,请点采纳该答案~


import re

s1="""<div moduleId='R1901001_3' moduleName='商品详情'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/kjFxXLy-ykw5JjXVM4BqmQ.jpg" alt="" /></p></div><div moduleId='R1901001_5' moduleName='常见问题'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/8YDP8GuVWzJ_28zN-mzn5w.jpg" alt="" /></p></div><div moduleId='R1901001_6' moduleName='售后服务'><p><img src2="https://uimgproxy.suning.cn/uimg1/sop/commodity/Vx3s5KLQD46FmOUgGAXP5Q.jpg" alt="" /></p></div>"""

src = re.findall('src2="(.*?jpg)"', s1)
print(src)
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^