elliotwutingfeng/take_a_shot

GitHub: elliotwutingfeng/take_a_shot

基于无头 Chrome 和 Docker 的轻量网页截图与源码采集工具,将结果以 base64 JSON 输出到标准输出,便于脚本集成与自动化处理。

Stars: 1 | Forks: 0

Take A Shot

Lens

截取任何给定网页的屏幕截图和/或 HTML 源代码数据,并将其打印到标准输出。

输出格式:包含 base64 编码数据的 JSON 字符串。

Python Docker Google Chrome

MIT license

## 实现细节 - 在无头模式下使用 Google Chrome。 - 即使是垂直长度较长的网页也能很好地工作。 - 带有固定头部的网页通常效果良好,但固定页脚可能会导致异常结果。 复刻并修改自: ## 要求 已在以下环境中测试 ### Linux - Linux 6.12 - Docker 版本 28.3.0 ## 用法 ### 构建 ``` ./build ``` 然后运行 ``` ./capture [options] ``` 或者运行 ``` docker run --cap-drop=all --security-opt=no-new-privileges --rm elliotwutingfeng/take_a_shot [options] ``` ## 输出格式 ``` { "screenshot": "", "source_code": "" } ``` ## 示例 ### 默认 User Agent ``` docker run --cap-drop=all --security-opt=no-new-privileges --rm elliotwutingfeng/take_a_shot "https://example.com" ``` ### 指定 User Agent ``` docker run --cap-drop=all --security-opt=no-new-privileges --rm elliotwutingfeng/take_a_shot "https://example.com" --window-size 390x844 --ua 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/113.0 Mobile/15E148 Safari/605.1.15' ``` ## 帮助 ``` usage: takeashot.py [-h] [--screenshot] [--source-code] [--window-size WINDOW_SIZE] [--ua USER_AGENT] [--wait WAIT] [--lang LANG] [--language LANGUAGE] [-v] [--vv] url positional arguments: url specify URL options: -h, --help show this help message and exit --screenshot Take screenshot --source-code Extract source code --window-size WINDOW_SIZE specify window size like 1200x800 --ua USER_AGENT specify user-agent --wait WAIT specify wait seconds after scroll down --lang LANG set LANG environment variable --language LANGUAGE set LANGUAGE environment variable -v set LogLevel to INFO --vv set LogLevel to DEBUG ``` ## 致谢 [更多信息](CREDITS.md)
标签:API安全, Base64, Chrome Headless, DNS解析, Docker容器, HTML源码获取, JSON输出, Kubernetes安全, Linux工具, Python, SEO工具, Web信息收集, 开源项目, 攻击面发现, 数据编码, 无后门, 无头浏览器, 端口探测, 网站存档, 网页截图, 网页数据抓取, 网页自动化, 请求拦截, 逆向工具