StickyHashTr33/tx-surveillance-watch

GitHub: StickyHashTr33/tx-surveillance-watch

自动化监控德克萨斯州政府机构监控技术采购合同的公共预警工具,通过多门户数据抓取和实时推送提升政府透明度。

Stars: 0 | Forks: 0

# 德克萨斯州监控合同观察 **针对德克萨斯州政府采购监控技术的自动化公共预警。** 监控德克萨斯州市政、县和州机构的采购门户,寻找涉及 ALPR 系统、人脸识别、枪声检测、无人机、预测性警务平台及相关监控技术的合同。新发现将通过 RSS feed、Discord webhook 和 Bluesky 发布。 ## 监控内容 | 来源 | 门户 | 覆盖范围 | |--------|--------|----------| | **USAspending.gov** | 联邦 API | 给德克萨斯州接收者的联邦拨款 | | **圣安东尼奥市** | 核算与奖励 | 金额 > 5万美元的市政合同 | | **德州 ESBD** | txsmartbuy.gov/esbd | 州机构奖励(2.5万美元以上) | | **贝克萨尔县** | bexar.org/Bids.aspx | 县级招标 | ### 追踪的监控供应商和技术 - **ALPR / 车牌**:Flock Safety, Genetec, Vigilant Solutions, Rekor, Motorola Solutions - **枪声检测**:ShotSpotter, SoundThinking, Shooter Detection Systems - **人脸识别**:Clearview AI, Cognitec, NEC NeoFace, Corsight - **视频 / CCTV**:Verkada, Avigilon, Axis, Hanwha, Dahua, Hikvision - **融合平台**:Fusus, Palantir, Forensic Logic, Mark43 - **无人机**:Axon Air, Skydio, DJI, Percepto - **执法记录仪**:Axon Enterprise, Watchguard, Digital Ally - **手机信号模拟器**:L3Harris (Harris Corp), KeyW - **社交媒体监控**:Babel Street, Dataminr, Voyager Labs - **预测性警务**、实时犯罪中心、生物识别系统 请查看 `keywords.py` 以添加更多内容。 ## 快速开始 ``` git clone https://github.com/YOUR_HANDLE/tx-surveillance-watch cd tx-surveillance-watch pip install -r requirements.txt playwright install chromium # for ESBD (JS-rendered) cp .env.example .env # 使用你的 Discord webhook、Bluesky handle 等编辑 .env python main.py # run once python main.py --stats # show DB stats python main.py --loop # run continuously (every 12h) python main.py --source usaspending # run a single scraper python main.py --no-alerts # scrape only, no Discord/Bluesky ``` ## 预警设置 ### RSS feed 将任何 RSS 阅读器指向 `public/feed.xml`(或者在 GitHub Pages 部署后的 `https://YOUR_HANDLE.github.io/tx-surveillance-watch/feed.xml`)。 ### Discord 1. 打开你的服务器 → 频道设置 → **集成 (Integrations) → Webhooks → 新建 Webhook** 2. 复制 URL → 作为 `DISCORD_WEBHOOK_URL` 添加到 `.env` 中 ### Bluesky 1. 在 [bsky.app](https://bsky.app) 创建账号 — 例如 `txsurveillancewatch.bsky.social` 2. **设置 → 应用密码 (App Passwords) → 生成 (Generate)** 3. 作为 `BLUESKY_HANDLE` 和 `BLUESKY_APP_PASSWORD` 添加到 `.env` 中 ## 自动化部署 (GitHub Actions) 包含的 `.github/workflows/scrape.yml` 会利用 GitHub 的免费层级每 12 小时运行一次: 1. **将此仓库 fork 或推送到 GitHub** 2. 在 **设置 (Settings) → 密钥 (Secrets) → Actions** 中添加密钥: - `DISCORD_WEBHOOK_URL` - `BLUESKY_HANDLE` - `BLUESKY_APP_PASSWORD` 3. 启用 **GitHub Pages** → 来源 (Source):`public/` 分支 4. 完成了 — 该 action 会运行,提交 `feed.xml` 和 `watchdog.db`,并且 Pages 会提供仪表板服务 ## 项目结构 ``` tx-surveillance-watch/ ├── main.py # Entry point / orchestrator ├── config.py # All settings (env vars) ├── keywords.py # Surveillance tech keyword list ├── db.py # SQLite persistence + dedup │ ├── scrapers/ │ ├── base.py # BaseScraper (HTTP helpers, keyword scanning) │ ├── usaspending.py # USAspending.gov REST API │ ├── cosa.py # City of San Antonio (ASP.NET form scraper) │ ├── esbd.py # Texas ESBD (Playwright / fallback) │ └── bexar.py # Bexar County (CivicEngage) │ ├── alerts/ │ ├── rss.py # RSS 2.0 feed generator │ ├── discord.py # Discord webhook embeds │ └── bluesky.py # Bluesky AT Protocol poster │ ├── public/ │ ├── index.html # Static dashboard (GitHub Pages) │ └── feed.xml # Generated RSS feed │ ├── .github/workflows/ │ └── scrape.yml # GitHub Actions scheduled job │ ├── .env.example # Environment variable template ├── requirements.txt └── watchdog.db # SQLite database (gitignored in production) ``` ## 添加更多门户 1. 创建继承自 `BaseScraper` 的 `scrapers/yourportal.py` 2. 实现 `scrape() -> list[dict]`,返回包含以下键的记录: `source, title, description, vendor, amount, award_date, agency, url, matched_keywords, raw` 3. 在 `scrapers/__init__.py` 中导入 4. 添加到 `main.py` 的 `SCRAPERS` 字典中 ### 高价值的下一个目标 - **奥斯汀**:austintexas.gov(使用 Bonfire) - **休斯顿**:houstontx.gov 采购门户 - **达拉斯**:dallascityhall.com - **SAPD/德州 DPS 拨款**:DOJ JAG 拨款数据库(另一个 USAspending 过滤器) - **市议会会议纪要**:SA SpeakUp 平台(会议议程通常在合同正式授予前公布) ## 法律 / 道德声明 此工具抓取的所有数据在以下法律下均属合法公开: - **德克萨斯州公共信息法**(政府法规第 552 章)— 市政当局必须公布采购奖励 - **联邦资金责任与透明度法案 (FFATA)** — USAspending 数据 - **德克萨斯州地方政府法规 §262** — 竞争性招标要求强制公开张贴 此工具对面向公众的搜索界面执行只读访问。它不会尝试访问经过身份验证的区域、绕过安全措施或收集个人信息。通过 `REQUEST_DELAY_SECONDS` 设置遵守速率限制。 ## 相关项目 - [DeFlock](https://deflock.me) — 众包的 Flock Safety 摄像头地图 - [EFF Atlas of Surveillance](https://atlasofsurveillance.org) — 全国警察技术地图 - [OpenStreetMap 监控标签](https://wiki.openstreetmap.org/wiki/Tag:man_made%3Dsurveillance) - [ADS-B Exchange](https://adsbexchange.com) — 模范:未经过滤的公开数据
标签:GitHub Actions, Playwright, RSS, URL抓取, 公共记录, 政府监控, 数据抓取, 特征检测, 自动化监控, 自动笔记, 逆向工具