返回 Skill 列表
extension
分类: 数据与分析无需 API Key

Nyc 311 Reporter

使用 Playwright 自动浏览 NYC 311 门户网站,抓取投诉类别、定位表单并填写用户信息,以自动提交服务请求。

person作者: pranjalminochahubclawhub

NYC 311 Reporter

Automates NYC 311 complaint filing using Playwright for browser automation.

Workflow

Step 1: Read User Complaint

Extract from natural language:

  • Location — Where is the issue?
  • Description — What is happening?
  • Vehicle/Details — Car make, model, color, plate if available
  • Duration — How long has it been there?
  • Photos — Does the user have photos?

Step 2: Scrape Categories

Run the browser script to explore available complaint categories:

python3 scripts/browse_311.py scrape

Step 3: Find the Right Form

For fire hydrant complaints:

python3 scripts/browse_311.py find

Step 4: Fill and Submit

Run with your complaint details:

Dry run (preview only):

python3 scripts/browse_311.py submit \
  --location "726 DeKalb Avenue, Brooklyn, NY" \
  --vehicle "Gray Nissan Micra" \
  --duration "10 hours" \
  --name "Ricardo Díaz" \
  --email "ricardo@example.com" \
  --phone "+19299990000"

Actual submission:

python3 scripts/browse_311.py submit \
  --location "726 DeKalb Avenue, Brooklyn, NY" \
  --vehicle "Gray Nissan Micra" \
  --duration "10 hours" \
  --name "Ricardo Díaz" \
  --email "ricardo@example.com" \
  --phone "+19299990000" \
  --submit

User Profile

Store user information in assets/config.json:

{
  "name": "Ricardo Díaz",
  "phone": "+19299990000",
  "email": "ricardo@example.com",
  "home_address": "726 DeKalb Avenue",
  "work_address": "726 DeKalb Avenue",
  "apartment": "1E",
  "preferred_contact": "email",
  "notify_updates": true
}

Scripts

  • scripts/browse_311.py — Main automation script:
    • scrape — List all complaint categories
    • find — Find the fire hydrant/parking form
    • submit — Fill and optionally submit the form

Installation

pip install -r requirements.txt
playwright install chromium

Notes

  • Screenshots are saved to /tmp/ for review
  • The script handles JavaScript-heavy pages
  • Run without --submit first to verify the form fills correctly
  • If 311 portal has technical issues, the script will report errors