一个 Golang 实用工具,用于爬取网站以搜索更多链接,并支持 JavaScript 渲染。
go get -u github.com/iamstoxe/urlgrab
urlgrab 的使用方法:
-cache-dir string
指定一个目录以利用缓存。也可在会话之间使用。
-debug
极其详细的调试输出。主要对开发有用。
-delay int
请求之间随机应用的延迟毫秒数。(默认 2000)
-depth int
已访问 URL 递归深度的最大限制。(默认 2)
-headless
如果为 true,爬取时将显示浏览器。
注意:需要 render-js 标志
注意:显示浏览器的用法:--headless=false(默认 true)
-ignore-query
在判断是否已访问某个 URL 之前,去除 URL 的查询部分。
-ignore-ssl
抓取具有无效 SSL 证书的页面
-js-timeout int
渲染 JavaScript 的请求超时秒数。(默认 10)
-json string
用于存储输出 JSON 文件的文件名。
-max-body int
获取的响应主体大小限制,单位为千字节。
0 表示无限制。
请以千字节为单位提供此值。(例如 10 * 1024kb = 10MB)(默认 10240)
-no-head
在 GET 发送之前不发送 HEAD 请求进行预验证。
-output-all string
用于存储输出文件的目录。
-proxy string
要使用的 SOCKS5 代理(格式:socks5://127.0.0.1:8080 或 http://127.0.0.1:8080)。
用逗号分隔可提供多个代理。
-random-agent
使用随机的用户代理字符串。
-render-js
决定是否使用无头 Chrome 实例渲染 JavaScript。
-root-domain string
用于匹配链接的根域。
如果未指定,则默认为 --url 的主机。
示例:--root-domain google.com
-threads int
要使用的线程数。(默认 5)
-timeout int
请求超时秒数。(默认 10)
-url string
开始爬取的 URL。
-urls string
包含要作为起始 URL 的 URL 列表的文件路径。
需要 --root-domain 标志。
-user-agent string
用户代理,例如 (Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0)。
-verbose
详细输出
你可以通过以下命令轻松构建特定于你平台的二进制文件到 bin 目录:
make build
如果你想为 Windows、Linux 和 macOS 构建分发 CLI 的二进制文件,只需运行此命令:
make cross
所有二进制文件将位于 dist 目录中。
👤 Devin Stokes
欢迎贡献、提交问题和功能请求!
请随时查看问题页面。
如果这个项目对你有帮助,请给它一个 ⭐!