批量下载网页中的资源

比如我们想下载某个课程的所有lecture的pdf/pptx资料


https://www.uio.no/studier/emner/matnat/its/TEK4500/h20/lectures/
https://github.com/LiYing0/CS_Gra-HITsz/tree/master/研一上/密码学

手动下载每一个链接非常的低效
下面教一下如何用shell命令完成这项工作

右键查看网页源码或者按F12,得到资源的网页元素块


右键复制元素


image.png
粘贴到本地文本文件中

接下来可以打开git bash运行我们的shell命令

git bash

在网页可以curl下来的情况下,也可以省略复制到本地文本文件中的这一步
直接curl资源所在的网页


curl https://www.uio.no/studier/emner/matnat/its/TEK4500/h20/lectures/
image.png

总的来说四部曲:

  1. curl 或者 cat 网页源代码的文本文件
  2. grep "pdf|pptx"
  3. awk -F '"' '{print $数字}'
  4. (去重)排序

第3步补充说明:
网页里面的分割符如果用 "
aaa"bbb"ccc
如果想截取bbb的话,数字填2


没带https的情形

对于资源地址没显示完整的情形,有时候需要手动补充完整
方法是在print后面添加需要补充的内容,比如


cat 1.txt | grep 'pdf|pptx' | awk -F '"' '{print "http://github.com" $10}'

最后可以用IDM批量下载


IDM

在任务栏点选从剪贴板添加批量下载

大功告成~

你可能感兴趣的:(批量下载网页中的资源)