做网站如何收费做网站自己有模板要花多少钱

张小明 2025/12/30 19:37:41
做网站如何收费,做网站自己有模板要花多少钱,淄博什么兼职的网站建设,企业logo设计意义科目一题库自动化整合#xff1a;从网页逆向到Word文档生成 在准备机动车驾驶证考试的过程中#xff0c;科目一的1685道理论题往往成为考生最头疼的部分。虽然市面上有各类APP和在线练习平台#xff0c;但多数只能逐题刷题#xff0c;缺乏集中复习、离线查阅或打印精读的能…科目一题库自动化整合从网页逆向到Word文档生成在准备机动车驾驶证考试的过程中科目一的1685道理论题往往成为考生最头疼的部分。虽然市面上有各类APP和在线练习平台但多数只能逐题刷题缺乏集中复习、离线查阅或打印精读的能力。更关键的是移动端网站通常通过JavaScript动态加载题目无法直接复制内容。有没有办法把这1685道题一次性抓下来整理成一个结构清晰、图文并茂的Word文档答案是肯定的——只要我们能定位到后台的真实数据接口并编写一段轻量级爬虫程序。打开驾驶员考试网移动端你会发现页面非常简洁点击“下一题”就能切换题目但没有导出功能也没有明显的API调用痕迹。这时候就需要借助浏览器开发者工具来“透视”前端行为。按F12进入DevTools切换到Network → XHR标签页刷新页面后点击“下一题”很快就能观察到一条请求路径https://tkdata.mnks.cn/ExamData/{code}.json?CALL?{version}.json这个URL显然不是普通的HTML页面而是一个返回JSON数据的接口。其中{code}是每道题的唯一编码{version}是当前题库版本号。进一步查看页面源码或Sources面板中的JS文件可以发现如下关键变量var ExamVersion 20201231143735; var ExamCount 1685; var ExamCodes 02dec,0d977,02567,...,fcd0b; // 共1685个逗号分隔的编码这些信息正是我们梦寐以求的核心参数题数、版本号、全部题目编码列表。有了它们就等于拿到了整套题库的“钥匙”。拿到入口之后先来看看单个题目的响应格式。以一道判断题为例请求结果如下{ tkId: 2013, sortId: 1501, code: 3fd79, tx: 1, tm: 驾驶机动车在道路上违反道路通行规定应当接受相应的处罚。, tv: , da: 对, tags: 违反道路通行规定 }字段含义很直观-tm是题目正文-da是正确答案“对”或“错”-tv是图片路径为空表示无图。而对于选择题情况稍复杂一些。部分题目的tm字段中包含br/分隔符例如tm: 驾驶人有下列哪种违法行为br/一次记6分br/A. 使用其他车辆行驶证br/B. 饮酒后驾驶机动车...这意味着我们需要用.split(br/)将其拆分为题干和选项两部分处理。当tv不为空时其值形如/SU/od50vqgFW8x去除前缀后拼接到图片基础域名即可得到完整链接img_code data[tv].replace(/SU/, ) img_url fhttps://sucimg.itc.cn/sblog/{img_code}这类图片通常是交通标志、路况示意图等关键视觉信息必须下载并嵌入最终文档中。接下来就是动手实现爬虫逻辑。推荐使用 Conda 创建独立环境避免依赖冲突conda create -n driver_exam python3.8 conda activate driver_exam pip install requests lxml docx beautifulsoup4 urllib3主要依赖说明-requests发起HTTP请求获取JSON数据-python-docx操作Word文档支持插入文本与图片-urllib.request用于下载网络图片资源。开发工具建议使用 PyCharm 或 VS Code调试过程会更加顺畅。下面是一段可运行的完整代码用于将全部1685道题抓取并写入Word文档import requests import time import urllib.request from docx import Document from docx.shared import Pt from docx.enum.text import WD_PARAGRAPH_ALIGNMENT def download_image(img_url, save_path): try: headers {User-Agent: Mozilla/5.0} req urllib.request.Request(img_url, headersheaders) with urllib.request.urlopen(req) as resp: with open(save_path, wb) as f: f.write(resp.read()) return True except Exception as e: print(f图片下载失败: {e}) return False # 初始化文档 doc Document() doc.add_heading(机动车驾驶证科目一理论考试题库共1685题, level1) # 配置参数 ExamVersion 20201231143735 base_url https://tkdata.mnks.cn/ExamData/ img_base_url https://sucimg.itc.cn/sblog/ image_dir ./images/ # 本地保存图片目录请提前创建 import os os.makedirs(image_dir, exist_okTrue) # 完整题目编码列表此处省略具体字符串实际使用需补全 ExamCodes 02dec,0d977,02567,84832,3fd79,... # 省略中间部分 ExamCodes ExamCodes.split(,) headers { Referer: https://m.jsyks.com/, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 } for idx, code in enumerate(ExamCodes): url f{base_url}{code}.json?CALL?{ExamVersion}.json try: resp requests.get(url, headersheaders, timeout15) data resp.json() lines data[tm].split(br/) title lines[0] options lines[1:] # 添加题目编号与题目 p doc.add_paragraph() p.add_run(f{idx1}、{title} ).bold True p.add_run(f[答案{data[da]}]).italic True # 添加选项若有 for opt in options: doc.add_paragraph(f {opt}, styleList Bullet) # 插入配图若存在 if data[tv]: img_code data[tv].replace(/SU/, ) img_url f{img_base_url}{img_code} img_path f{image_dir}{img_code}.jpg if download_image(img_url, img_path): paragraph doc.add_paragraph() paragraph.alignment WD_PARAGRAPH_ALIGNMENT.CENTER run paragraph.add_run() run.add_picture(img_path, widthPt(300)) print(f已处理第 {idx1}/{len(ExamCodes)} 题) # 控制请求频率防止被封IP time.sleep(0.5) except Exception as e: print(f第{idx1}题抓取异常: {e}) continue # 保存最终文档 output_file 科目一1685道题库整理版.docx doc.save(output_file) print(f\n✅ 所有题目已成功导出至{output_file})⚠️ 实际运行前请确保- 已将完整的ExamCodes字符串粘贴进代码- 手动创建./images/目录用于存放图片- 可考虑分批执行如每次300题避免长时间运行中断导致重来。除了主干题目外部分题目还提供详细解析信息可通过另一个接口获取https://tkdata.mnks.cn/ExamNote/{code}.json?CALL?{version}.json示例代码如下import json for i in range(10): # 示例仅取前10题解析 code ExamCodes[i] note_url fhttps://tkdata.mnks.cn/ExamNote/{code}.json?CALL?{ExamVersion}.json try: res requests.get(note_url, timeout10) notes json.loads(res.text.lstrip([).rstrip(])) # 去除非法包裹字符 print(f\n【第{i1}题 解析】) for item in notes: print(item[cnt]) except Exception as e: print(f第{i1}题无解析或获取失败: {e})需要注意的是并非所有题目都有解析内容部分请求可能返回空数组或404错误。整个项目虽小却完整涵盖了现代爬虫开发的关键环节找接口、提参数、控频率、存数据。对于初学者而言这是一个极佳的实战案例——它不需要复杂的框架也不涉及反爬对抗重点在于理解前端行为与数据流之间的关系。最终生成的Word文档不仅可用于打印复习还能导入Notion、Obsidian等知识管理工具进行二次加工。未来还可拓展方向包括- 使用pandas导出为Excel表格便于筛选分类- 结合标签字段自动归类如“交通标志”、“高速驾驶”等- 利用pdfplumber对比官方PDF题库验证完整性。这种“轻量级逆向 自动化整合”的思路在日常工作中极具实用价值。无论是提取企业培训资料、归档历史公告还是构建私有知识库都可以依此模式快速实现。技术的本质从来都不是炫技而是让繁琐变得简单让不可控变得可预期。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站专用图标wordpress 页面 瞄

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。 📌 概述 统计分析功能提供了旅行数据的深度分析。用户可以查看旅行的统计数据,如总旅行数、总花费、平均花费等。统计分析还支持按目的地、时间等维度进行分析。在 Cord…

张小明 2025/12/28 6:56:31 网站建设

网站开发小程序定制怎么样制作一个网页

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 制作一个交互式Redis Lua脚本学习工具,从最简单的Hello World脚本开始,逐步引导用户完成:1) 变量声明 2) 调用Redis命令 3) 返回值处理。每个步骤…

张小明 2025/12/28 6:55:58 网站建设

安徽省建设监理网站上传文件到网站

高性能RAG检索优化:利用GPU加速Anything-LLM向量计算 在企业知识库动辄百万级文本片段的今天,用户早已不再容忍“上传文档后等待三分钟才能提问”的交互体验。更糟糕的是,即便等来了响应,答案还常常张冠李戴、凭空捏造——这正是传…

张小明 2025/12/28 6:55:23 网站建设

网站首页打开速度汽配公司的网站要怎么做

Kotaemon如何应对模糊地点查询?地理编码补全 在智能客服、虚拟助手日益普及的今天,用户早已习惯用自然语言提问:“附近有没有修车店?”“上海人民广场那块儿有推荐的咖啡馆吗?”这些看似简单的句子,对机器而…

张小明 2025/12/28 6:54:48 网站建设

网站开发品牌公司注册地址可以是家庭地址吗

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Python工具,能够自动检测文本中的UTF-8编码错误,并尝试修复。工具应支持以下功能:1. 读取文件或直接输入文本;2. 检测可能的…

张小明 2025/12/28 6:54:13 网站建设

祥云平台网站管理系统ui设计在线网站

如何快速掌握QCMA:PS Vita无线内容管理的完整指南 【免费下载链接】qcma Cross-platform content manager assistant for the PS Vita (No longer maintained) 项目地址: https://gitcode.com/gh_mirrors/qc/qcma 还在为PS Vita的数据传输而烦恼吗&#xff1…

张小明 2025/12/28 6:53:37 网站建设