微店链接解析:从分享链接中提取商品信息的Python实现

张开发
2026/4/15 10:18:42 15 分钟阅读

分享文章

微店链接解析:从分享链接中提取商品信息的Python实现
在日常使用微店分享商品时我们经常会拿到一段包含各种参数的短链接或长链接。如果需要批量获取商品名称、价格、ID、封面图等信息手动复制效率极低。本文将用Python实现一个轻量、稳定的微店商品链接解析工具无需第三方接口直接从公开页面提取商品核心信息。一、实现思路处理短链接微店分享的大多是t.cn短链接需要先跳转获取真实长链接定位商品 ID从长链接中提取微店商品唯一标识item_id爬取商品页面请求商品详情页 HTML 源码解析数据用正则表达式提取商品名称、价格、封面图、店铺名等信息封装工具做成通用函数支持直接传入分享链接返回结构化数据。二、环境准备需要安装两个轻量库bash运行pip install requests beautifulsoup4三、完整代码实现python运行import re import requests from urllib.parse import urlparse, parse_qs # 全局请求头模拟浏览器防止被拦截 HEADERS { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Referer: https://weidian.com/ } def get_real_url(short_url: str) - str: 解析短链接获取真实的微店长链接 :param short_url: t.cn 等短链接 :return: 真实长链接 try: resp requests.get( short_url, headersHEADERS, allow_redirectsTrue, timeout10 ) return resp.url except Exception as e: raise Exception(f短链接解析失败{str(e)}) def parse_weidian_link(share_url: str) - dict: 微店商品链接解析主函数 :param share_url: 微店分享链接短链/长链都支持 :return: 商品结构化信息 # 1. 获取真实链接 real_url get_real_url(share_url) # 2. 提取商品ID item_id parsed urlparse(real_url) querys parse_qs(parsed.query) item_id querys.get(item_id, [None])[0] if not item_id: raise Exception(未找到商品ID链接可能无效) # 3. 请求商品详情页 item_url fhttps://weidian.com/item.html?itemID{item_id} resp requests.get(item_url, headersHEADERS, timeout10) resp.encoding utf-8 html resp.text # 4. 正则提取商品信息匹配页面内置JSON/文本 info {} # 商品ID info[item_id] item_id # 商品名称 title_match re.search(ritemTitle:([^]?), html) info[title] title_match.group(1) if title_match else 未获取到标题 # 商品价格 price_match re.search(rprice:([^]?), html) info[price] price_match.group(1) if price_match else 未获取到价格 # 商品原价 old_price_match re.search(roldPrice:([^]?), html) info[old_price] old_price_match.group(1) if old_price_match else 无原价 # 商品封面图 img_match re.search(ritemImg:([^]?), html) info[cover_image] img_match.group(1).replace(\\/, /) if img_match else 未获取到封面图 # 店铺名称 shop_match re.search(rshopName:([^]?), html) info[shop_name] shop_match.group(1) if shop_match else 未获取到店铺名 # 商品详情链接 info[detail_url] item_url return info if __name__ __main__: # 测试替换成你的微店分享链接 test_link https://t.cn/AiQpDxxx # 示例短链接 try: result parse_weidian_link(test_link) print( * 50) print(微店商品解析结果) print( * 50) for k, v in result.items(): print(f{k:15s}: {v}) except Exception as e: print(f解析失败{e})四、代码说明短链接跳转get_real_url函数自动处理t.cn短链接拿到真实商品页地址ID 提取通过urlparse解析链接参数精准拿到item_id微店商品唯一 ID反爬处理携带浏览器请求头模拟正常访问避免请求被拦截正则解析直接匹配页面内置的商品数据比解析 HTML 结构更稳定返回格式输出字典格式数据可直接用于存储、展示、二次开发。五、使用示例输入微店分享短链plaintexthttps://t.cn/AiQpDxxx输出结果plaintext 微店商品解析结果 item_id : 1234567890 title : 新款纯棉休闲T恤 price : 59.00 old_price : 99.00 cover_image : https://img.weiqi2.com/xxx.jpg shop_name : XX服饰小店 detail_url : https://weidian.com/item.html?itemID1234567890六、扩展与优化批量解析封装成循环读取 Excel / 文本中的链接批量导出商品信息异常增强增加链接有效性校验、超时重试、代理 IP 支持更多字段可扩展提取库存、销量、商品详情、规格参数等接口化配合 FastAPI/Flask 做成在线解析接口供其他系统调用。七、注意事项本工具仅用于公开商品信息的合法获取请勿用于商业爬虫、批量恶意请求微店页面结构若更新正则表达式可能需要微调频繁请求可能触发限流建议增加请求间隔时间。总结本文实现了一套轻量、开箱即用的微店链接解析方案能快速从分享链接中提取商品 ID、名称、价格、封面图、店铺名等核心信息。代码无需依赖第三方接口适配短链 长链适合个人使用、小工具开发、数据整理等场景。

更多文章