dcannistraro Asked: 2022-11-01 12:58:17 +0800 CST2022-11-01 12:58:17 +0800 CST 2022-11-01 12:58:17 +0800 CST 有没有办法在不下载文件的情况下在域上 Grep 多个 HTML 页面? 772 我本质上想在浏览器中Ctrl添加F多个站点。 我在域上有一系列 URLhttps://exampleblog.com/posts/{1-50} 我想/posts/一次 grep 下的所有页面。它们每个都用从 1 到 50 的有序 int 进行标识。 有没有办法在不下载的情况下做到这一点wget?我想 grep 我从中得到的信息curl。 我觉得有一个雄辩的管道或一个班轮可以让我从终端执行此操作而无需下载(尽管它可能很慢)。 grep pipe curl wget 1 个回答 Voted Best Answer mashuptwice 2022-11-01T13:32:40+08:002022-11-01T13:32:40+08:00 请注意,即使 curl 也会下载页面,它只是不会将其写入文件,而是写入 stdout。 方法一 curl支持顺序获取 URL: curl 'https://exampleblog.com/posts/[1-50]' | grep <searchterm> 方法二 你可以只做一个 for 循环: for i in {1..50} do curl https://exampleblog.com/posts/"$i" | grep <searchterm> done 方法三 如果 URL 中没有序列号,则可以wget递归使用。它将解析下载页面的 URL 并跟踪找到的链接。该--no-parent选项确保它仅下载同一子目录中和层次结构更深的页面,在这种情况下为questions. 请注意,如果下载页面中没有符合条件的链接,wget则不会加载它,即使该网站上的其他页面可能会引用它。 wget --recursive --no-parent https://superuser.com/questions/1750443 -O ./test.out grep <searchterm> test.out rm test.out
请注意,即使 curl 也会下载页面,它只是不会将其写入文件,而是写入 stdout。
方法一
curl
支持顺序获取 URL:方法二
你可以只做一个 for 循环:
方法三
如果 URL 中没有序列号,则可以
wget
递归使用。它将解析下载页面的 URL 并跟踪找到的链接。该--no-parent
选项确保它仅下载同一子目录中和层次结构更深的页面,在这种情况下为questions
.请注意,如果下载页面中没有符合条件的链接,
wget
则不会加载它,即使该网站上的其他页面可能会引用它。