如何在Java/Android Studio中解析application/ld+json提取datePublished字段
提取ld+json结构中datePublished字段的解决方案
常见提取失败的核心原因是没有先解析HTML定位到对应标签,直接用字符串匹配易被源码中的换行、多余空白字符干扰,可按以下步骤实现:
- 发送请求时添加符合浏览器规范的User-Agent请求头,避免网站反爬机制返回残缺页面内容
- 用HTML解析器定位
type="application/ld+json"的script标签,不要直接对全页源码做字符串匹配 - 提取标签内文本后先清除首尾空白字符,再转换为JSON对象读取目标字段
以下是Python环境的实现示例:
import requests from bs4 import BeautifulSoup import json # 替换为目标页面地址 url = "目标页面URL" 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" } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") # 定位ld+json标签 ld_json_tag = soup.find("script", type="application/ld+json") if ld_json_tag: # 清理内容后转JSON json_str = ld_json_tag.text.strip() ld_data = json.loads(json_str) # 提取目标字段 date_published = ld_data.get("datePublished") print(date_published) else: print("未找到目标ld+json标签")
若目标页面是前端动态渲染的,需改用Selenium、Playwright等支持浏览器渲染的工具加载完整页面后再执行提取操作,避免静态请求无法获取到嵌入的JSON结构。
部分页面的ld+json可能包含多组JSON组成的数组,解析前可先打印清理后的字符串确认结构,再对应调整解析逻辑。
内容的提问来源于stack exchange,提问作者TLGINO
相关产品推荐
相关产品推荐

