如何用Python提取含jpg或png的URL并存入列表
提取拼接URL中的图片链接(JPG/PNG)
问题描述
有一段拼接在一起的URL字符串,包含多个图片链接(JPG格式)和一个音频链接,需要从中提取所有以.jpg或.png结尾的URL,存入列表中。原始字符串如下:
https://www.travel.taipei/d_upload_ttn/sceneadmin/pic/11000358.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c0/d756/e285/f317/2ece2309-3d1c-49da-8d3a-32e0227e7732.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c1/d379/e118/f25/554586cb-cf2d-40ef-9b6a-55fcf8d9e598.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c1/d856/e130/f366/21ed2d17-7610-4ad2-b517-5b1b0007612a.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/pic/11000360.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c1/d356/e17/f185/b1a2de52-4110-4355-a9fb-bf1d0eb627c9.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c0/d593/e103/f285/1633c311-e148-4d03-bb43-292d816951d2.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/pic/11000359.jpghttps://www.travel.taipei/streams/scenery_file_audio/c03.mp3
解决方案
使用Python的re正则模块可以高效实现需求,核心是通过正则匹配符合规则的URL片段,具体代码如下:
import re # 原始拼接的URL字符串 raw_url_str = "https://www.travel.taipei/d_upload_ttn/sceneadmin/pic/11000358.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c0/d756/e285/f317/2ece2309-3d1c-49da-8d3a-32e0227e7732.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c1/d379/e118/f25/554586cb-cf2d-40ef-9b6a-55fcf8d9e598.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c1/d856/e130/f366/21ed2d17-7610-4ad2-b517-5b1b0007612a.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/pic/11000360.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c1/d356/e17/f185/b1a2de52-4110-4355-a9fb-bf1d0eb627c9.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/image/a0/b0/c0/d593/e103/f285/1633c311-e148-4d03-bb43-292d816951d2.jpghttps://www.travel.taipei/d_upload_ttn/sceneadmin/pic/11000359.jpghttps://www.travel.taipei/streams/scenery_file_audio/c03.mp3" # 正则规则:匹配以https开头、以jpg/png结尾的完整URL,非贪婪模式避免过度匹配 image_url_pattern = re.compile(r"https://.*?\.(?:jpg|png)") # 提取所有符合条件的URL,自动存入列表 image_url_list = image_url_pattern.findall(raw_url_str) # 验证结果 print(image_url_list)
代码说明
- 正则规则解析:
https://:固定匹配URL的开头标识.*?:非贪婪匹配任意字符,确保遇到下一个.jpg/.png就停止,避免把多个URL合并成一个\.(?:jpg|png):匹配图片后缀,(?:)是非捕获组,确保返回的是完整URL而非仅后缀
re.findall():自动收集所有匹配成功的URL,直接返回列表格式,完全符合需求。
运行代码后,image_url_list就是包含所有目标图片链接的列表。
内容的提问来源于stack exchange,提问作者Warren Hogan
相关产品推荐
相关产品推荐

