在文件的每一行上运行curl命令并从结果中获取数据

ael*_*lor 7 regex bash awk curl

假设我有一个包含网页链接列表的文件.

www.xyz.com/asdd
www.wer.com/asdas
www.asdas.com/asd
www.asd.com/asdas
Run Code Online (Sandbox Code Playgroud)

我知道这样做curl www.xyz.com/asdd可以获取该网页的html.我想从该网页获取一些数据.

所以场景是使用curl逐个命中文件中的所有链接,从网页中提取一些数据并存储在其他地方.任何想法或建议.

fed*_*qui 7

正如评论,通过这种将循环指示your_filecurl各行:

while IFS= read -r line
do
   curl "$line"
done < your_file
Run Code Online (Sandbox Code Playgroud)

要获得<title>页面,您可以grep这样:

grep -iPo '(?<=<title>).*(?=</title>)' file
Run Code Online (Sandbox Code Playgroud)

所以你们可以一起做

while IFS= read -r line
do
   curl -s "$line" | grep -Po '(?<=<title>).*(?=</title>)'
done < your_file
Run Code Online (Sandbox Code Playgroud)

注意curl -s是静音模式.查看google page的示例:

$ curl -s http://www.google.com | grep -Po '(?<=<title>).*(?=</title>)'
302 Moved
Run Code Online (Sandbox Code Playgroud)