"""
"""
import json
import re
import jsonpath
item_require_fields = [
'id', 'author', 'authorStats', 'createTime', 'desc', 'imagePost', 'stats',' bitrateInfo', 'cover', 'CategoryType'
]
def get_video_by_response(response):
item_struct = get_item_json2(response.text())
item_struct['cover'] = item_struct.get('video').get('cover')
item_struct = {k: v for k, v in item_struct.items() if k in item_require_fields}
return item_struct
def get_video_json(html_content):
# 逐行读取文件
inside_items = False # 标志是否进入 items 部分
items_buffer = "" # 临时保存 JSON 部分
for line in html_content.splitlines():
# 通过简单的规则修复非标准 JSON 格式(可以根据实际情况定制)
line = line.strip() # 去掉多余的空白字符
if '"itemStruct"' in line:
items_buffer = '{'
inside_items = True # 发现目标字段
continue
# 处理 items 数组的部分
if inside_items:
items_buffer += line # 累积读取多行
# 如果找到了 JSON 数组的结束
if '}' in items_buffer:
try:
# 尝试解析 JSON
data = json.loads(items_buffer)
# 获取第一个 item
return data
except json.JSONDecodeError:
continue # 如果解析失败,继续读取下一行
# '', re.DOTALL)
# 查找所有匹配的