公共记录请求
目标: 以最低成本获取一份指定的文件,同时避免惹恼日后可能还需联系的办公室。完成标志: 文件已保存至本地磁盘并缓存,其来源和权利状态已记录在案——或者收到“我方无此文件”的书面答复,此答复同样视为成功,可了结该文件。
瓶颈:必须由人类发送。 起草文件、核实收件人、归入文件、标明为草稿、然后停止。任何包含验证码和签名勾选框的门户网站,均只能由人类操作。
步骤 0 — 首先查阅网站。这是成本最低的规则。
在起草任何文件前,先在办公室的网站上查找该文件。
已发布的收费标准表只能说明该办公室经常收到此类请求,而不能证明答案必须收费。 曾有报道称,某县以每年34.50美元的价格出售其资本化率研究报告,但该县在其统计页面上免费发布了同份报告过去四年的数据。一次页面抓取既省了钱,也免了三周的等待。
然后核查邻近机构:某个州级机构可能会发布县级机构不提供的汇总数据(但需仔细阅读其实际涵盖范围——一份州级“资本率研究”可能仅包含州评估的公共事业和铁路财产)。此外,需正确确认否定结果:在该办公室已发布的报告中搜索你的关键词。只有确认找不到,才能证明请求是获取信息的唯一途径。
步骤 1 — 找到正确的办公室,并确保名称无误
不同州的办公室名称各不相同。 向错误的机构发送请求将石沉大海。以商业房地产估值为例:
| 州 | 负责商业物业估值的部门 |
|---|---|
| MN, IA, NE | 县 评估员 (Assessor) |
| KS | 县 估价员 (Appraiser) |
| ND | 县 税务平衡主管 (Director of Tax Equalization) |
| SD | 县 平衡主管 (Director of Equalization) |
| WI | 无县级评估员 — 评估由市级负责,因此应致函市政府 |
另外:有些州将大城市的评估职能并入县评估员(例如爱荷华州:波尔克县涵盖得梅因市);另一些州则保持独立(例如北达科他州:法戈市和卡斯县彼此独立)。
渠道优先级:电子邮件、门户网站、邮寄。
- 电子邮件: 只要存在邮件地址,优先使用。需在该办公室的网站上核实地址。
- 门户网站(如GovQA, NextRequest): 仅当未公布邮件地址时使用。门户网站需要人工操作账户、验证码以及具有法律约束力的签名复选框。
- 邮寄: 最后手段;在草稿标题中注明其作为备用方案。
有些页面内容通过脚本渲染,curl 获取不到有用信息。可用 Python 去除HTML标签并搜索 @ 符号;若确无邮件地址,则如实说明,切勿猜测。
步骤 2 — 排除条款是整个请求的核心
在信件中亲自指明并声明排除适用的保密法规。 缺少该条款,请求将大概率被直接拒绝,因为办公室会习惯性地援引保密规定。有了该条款,问题将从“我们能否公开这份信息”转变为“您指的是我方哪一张表格”。
仅索取该办公室自身编制的、覆盖全县的汇总表和研究报告,这些文件不含地块层级或所有者可识别的数据,并主动提出可接受已剔除所有者提交部分信息的混合文档。
成功用于评估员请求的法规条款实例(请以现行法律为准):
| 州 | 依据法规 | 声明排除的法规 |
|---|---|---|
| MN | Minn. Stat. 13.03 subd. 3 | 13.51 subd. 2 — 所有者提交的收入/支出、空置率、可出租面积、租约 |
| KS | K.S.A. 45-215 et seq. (保管人:45-218) | 45-221(b) — 提供给估价员的纳税人财务信息 |
| IA | Iowa Code ch. 22 | 22.7 商业秘密 — 并引用 441.21(3)(a),该条明确要求披露公式或方法,外加 441.19(1)(a) |
| NE | Neb. Rev. Stat. 84-712 | 84-712.05(3) 商业秘密/专有信息 |
| ND | N.D.C.C. 44-04-18 | 44-04-18.4 商业秘密/商业信息 |
| SD | SDCL 1-27-1 | 该州评估官保密条款的对应规定 |
凡有法律强制要求公开的,务必引用该法条(如上文爱荷华州示例):它可以完全排除保密的惯性思维。
切勿改写已被接受的措辞。 一旦某办公室接受了你的措辞,可将其直接用于其他同类型办公室,仅需替换名称;任何改动都可能引发新一轮的范围确认问题。建议通过哈希校验确认段落未在批量编辑中被无意修改。
步骤 3 — 首封请求信必须包含的三项内容
- 要求五年数据,而非一年。 “包含2022至2026评估年度。” 对办公室而言是同样的查询工作,但可获得五倍的数据量——而系列数据本身往往就是产品(能显示办公室如何调整自身费率)。同时添加:“请发送您持有的所有年份;部分答复同样有用。” 这样即使缺少某一年份,也不会导致回复停滞。
- 提供一个简便的退出方式。 “若贵办公室不编制此类附表,只需一行文字说明即可了结此事,我将不再跟进。” 书面否定答复即可结案,且仅需对方三十秒,而非撰写正式的拒绝函。
- 请求先提供费用估算。 “若办理此请求会产生费用,请先告知估算金额,我将据此缩减请求范围。” 部分办公室按小时收费,且同时按查找和编辑双重计费。
步骤 4 — 批量发送前的检查
- 检查每个收件人域的MX记录:
dig +short MX <domain>。可避免因拼写错误导致十九封邮件被退回。 - 从头到尾通读一封完整的信件。 读全文,而非看差异。
- 在同一批请求中保持请求人身份一致(同一个人或同一家公司,同一地址),以便回复能够串联,无需对方反复确认身份。
- 使用纯文本格式发送。硬折行文本在HTML中会变形。
步骤 4b — 网页表单是充满敌意的渠道。需防范两种陷阱。
-
隐藏的字符数限制。 消息字段可能静默截断内容,例如将2000字符的正文截断为1000字符。对于任何网页表单,事先准备好简短版本:包含法规引用、带有年份范围的请求、保密声明、费用估算说明以及联系方式。保密声明是最后才考虑删除的内容。
-
Web应用防火墙直接拒绝整个请求(
Event Type: signature)。原因通常不是长度,而是标点符号:孤立的单引号是标准的SQL注入攻击特征。 需清除正文和主题中的如下字符:'"()&/;=<>--以及非ASCII字符。用“与”代替“&”,去掉法规子节中的括号,说“贵办公室编制的”而非“贵办公室的”。通过代码审核:python3 -c "s=open('body.txt').read(); print({c:s.count(c) for c in \"'\"()&/;=<>\" if c in s})"
在开始之前就确定备用方案: 隐藏邮件地址的办公室通常仍会公布街道地址。若表单经过三轮尝试仍无法提交,不值得再尝试第四轮;改为邮寄。
步骤 5 — 记录发送操作,否则相当于从未发生
保留法定的主题行 — 记录官员根据主题行路由请求,回复也会在同一主题下串联。将每份草稿的页眉从未发送改为已发送 <日期> 自 <地址>,messageId <ID>,在下方保留正文原文作为记录,并更新你的追踪表。仔细检查批量编辑影响的每一行:全局查找并替换状态列的操作,可能错误地将未发送的网页表单行标记为“已发送”。
步骤 5b — 需要附件的回复
部分邮件管理平台(如 Zoho)不支持附件上传。此时应通过事务性邮件提供商(如 Mailgun)从同一地址发送回复,并设置h:In-Reply-To和h:References为该办公室原始邮件的Message-ID,保留其主题行,以实现线程串联。使用 curl 时,务必对所有头部和正文字段使用**--form-string**——-F会将开头为<(所有Message-ID)或@的值视为“读取此文件”。通过提供商的 events API 确认投递成功。
办公室自有的表单通常在其网站上。 如果是纯PDF表单,可用 reportlab 叠加文本,将详细说明放在第2页,并在发送前将页面渲染为PNG图片并查看(文本落在标签上的情况比想象的更常见)。
在退回表单时缩小请求范围。 收到费用警告时,正是说明已持有哪些信息、仅请求剩余部分并要求先估算费用的时机。
当对方给出软性否定并提及输入数据时,并不等于拒绝提供衍生表格。 “我们使用来自租金调查的数据,这些数据是保密的”这样的答复,仅拒绝了一项以其保密性为理由的项目,而忽略了衍生研究报告。应将跳过项作为是非题重新询问,表示感谢,并再次提供那个简便退出选项。保持礼貌:因为你将来还可能再次联系该办公室。
步骤 6 — 催办,因为通常没有法定截止日期
短暂的法定时限往往并非为你设定。 门户网站标注的“10个工作日”可能仅适用于数据主体查询自身信息。对政府数据的通用请求,通常会得到“合理时间”的回应(例如明尼苏达州法规13.03 subd. 3),这根本没有设定时间限制。持续跟进是唯一施加压力的方式。 在请求发出的当天,就安排大约两周后的催办提醒(参见pending-queue钩子),在催办中包含参考编号、门户路径、联系人姓名,并注明“请勿改动请求内容”。催办只是查询状态;切勿在后续沟通中改变请求范围。
步骤 7 — 收到的文件是否可以重新发布?
在基于该文件构建任何东西之前,必须回答此问题。
- 明尼苏达州:可以,包括用于商业目的。 除非有明确的法律授权,否则机构必须允许“对该数据的无限制使用,即使出于商业目的”——明尼苏达州总检察长意见书 852 (1995)。
- 所有地区:事实本身不享有版权 (Feist 案) —— 只有特定的选择或编排才受保护。仅重新发布数字,切勿复制其文件布局。 将其重新表达到你自己的数据模型中。
- 其他地区,用途方面的规定尚不明确。 在主张权利前,请仔细阅读该州的商业使用条款,并如实标记你自己的文件(使用“尚未获批重新发布”作为标记,这并非办公室的限制——不要将其说成是办公室的限制)。
步骤 8 — 解析收到的文件
将原始文件与解析后的输出一同缓存,记录其 SHA256 哈希值和规范 URL,切勿重新下载。
不同年份的标签会发生变化。 某县在这四年间的年度表格中,自身行标签依次为22、22、18、18,且物业类型消失。请手动编写交叉对照表,并在每条记录中逐字保留原始标签。切勿使用模糊匹配 —— 这是导致错误数据看似正确的常见原因。数据类型的消失应表示为缺失,而非零值。
不要依赖对 pdftotext 输出进行正则匹配来判断数据结构。 一个字符类可能因缺少数字而错误截断 Warehouse <25% Office / >20K 中的 2,从而将四行静默合并为两行。在相信你的提取结果之前,先核对行数与源文件是否一致。
在声称可以关联跨来源数据之前,先用第二个来源证明关联的有效性。 同一州的县、同一类型的文件,其确切的物业类型名称可能无一匹配。