linux - 如何使用 wget 下拉域列表并使用 grep 扫描它们
问题描述
我有一个包含在名为“domains.txt”的文件夹中的域名列表,格式如下:
www.google.com
www.stackoverflow.com
www.apple.com
etc...
我想执行 wget 命令来下拉“domains.txt”中列出的每个域的副本并将其保存为 .html 页面。
我可以使用单独执行此操作,wget www.google.com
但我想知道,我可以遍历列表并将每个域名保存为单独的 .html 文件,而不是单独执行每个操作吗?
我要执行的第二个操作是扫描这些下拉的 .html 文件中的关键字,我将其包含在一个名为“keywords.txt”的文本文件中。它们的格式如下:
first_keyword
second_keyword
third_keyword
etc...
理想情况下,我希望有一个将域名打印到文本文件的输出,如果发现它包含“keywords.txt”中包含的任何关键字,则在它旁边带有“是”。如果可以打印在每个域旁边找到的关键字,那就太好了,但简单的“是”也很棒。我是 Linux 和脚本的新手,所以任何帮助都将不胜感激!
解决方案
我假设文件不包含引号。否则我需要更多代码来删除引号。
域.txt
www.google.com
www.stackoverflow.com
www.apple.com
关键字.txt
first_keyword
second_keyword
third_keyword
你可以试试这样的
outfile=tmp.html
while IFS= read -r domain
do
wget -O "$outfile" "$domain"
if fgrep -q -f keywords.txt "$outfile"
then
echo "$domain" yes
else
echo "$domain" no
fi
rm "$outfile"
done < domains.txt
推荐阅读
- python-3.x - 熊猫 3.7 中的 pathlib 连接路径
- git - 开发分支上的 Git 合并功能到另一个已经存在的开发分支
- javascript - Javascript - 如何将 ajax 调用中的数据传递给 3 个函数?
- javascript - 为什么 MDN 认为 JS 类“可能会导致错误”?
- javascript - 你会怎么去抓一个那个时候元素的值元素在节点列表内?
- whmcs - WHMCS 自定义功能 - 更新付款方式错误
- r - 将函数应用于数据框(t 检验)
- c# - 在 C# 脚本任务中读取具有“FileInfo”对象内容的对象变量
- mysql - 为医院数据库中的复发患者开发 mySQL 查询
- vue.js - 如何用 jest 对 vuetify v-text field 的规则进行单元测试?