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抓取, 公共记录, 政府监控, 数据抓取, 特征检测, 自动化监控, 自动笔记, 逆向工具