如何从爬虫获取的招聘页面JSON字符串中提取指定字段数据
提取操作分步指南
1. 预处理原始字符串
你拿到的原始内容是HTML实体转义后的JSON片段,首先要做两步预处理:
- 把所有
"替换为标准双引号",Python中可直接调用html.unescape()完成解码 - 确保你实际抓取到的是完整闭合的JSON结构(你提供的片段是截断的,正式使用时要补全所有缺失的闭合括号)
示例预处理代码:
import html import json # 替换为你实际抓取的原始字符串 raw_response = "your_raw_crawled_string" # 解码HTML实体 decoded_str = html.unescape(raw_response) # 解析为字典 job_dict = json.loads(decoded_str)
2. 按层级提取目标字段
所有目标字段的取值路径如下,直接按字典层级取值即可:
- 标题(Title):
job_dict["job"]["title"] - 岗位描述(Description):
job_dict["job"]["category"]["description"] - 客户活动数据:
lastBuyerActivity:job_dict["job"]["clientActivity"]["lastBuyerActivity"]totalApplicants:job_dict["job"]["clientActivity"]["totalApplicants"]totalHired:job_dict["job"]["clientActivity"]["totalHired"]totalInvitedToInterview:job_dict["job"]["clientActivity"]["totalInvitedToInterview"]unansweredInvites:job_dict["job"]["clientActivity"]["unansweredInvites"]invitationsSent:job_dict["job"]["clientActivity"]["invitationsSent"]
- 雇主信息:
isPaymentMethodVerified:job_dict["job"]["clientActivity"]["buyer"]["isPaymentMethodVerified"]- 所属国家:
job_dict["job"]["clientActivity"]["buyer"]["location"]["country"]
- stats下所有字段:直接取
job_dict["job"]["clientActivity"]["buyer"]["stats"]字典对象,内含所有子字段 - jobs下所有字段:直接取
job_dict["job"]["clientActivity"]["buyer"]["stats"]["jobs"]字典对象 avgHourlyJobsRate:job_dict["job"]["clientActivity"]["buyer"]["stats"]["jobs"]["avgHourlyJobsRate"]["amount"]
3. 兼容异常场景
为避免抓取到的JSON结构缺失字段导致程序报错,建议用get()方法取值,指定默认值:
# 示例:取值带默认值 title = job_dict.get("job", {}).get("title", "") client_activity = job_dict.get("job", {}).get("clientActivity", {}) total_applicants = client_activity.get("totalApplicants", 0)
内容的提问来源于stack exchange,提问作者N34RM1K Zx
相关产品推荐
相关产品推荐

