#!/bin/bash

read -p "请输入要爬取的页面数(默认为10):" page_num
page_num=${page_num:-}
echo $page_num
read -p "请输入要保存的目录名称(默认为img):" save_path_name
save_path_name=${save_page_name:-"/opt/img"}
[ ! -d $save_path_name ]&&mkdir $save_path_name
echo $save_path_name for i in `seq $page_num`
do base_url="http://www.doutula.com/article/list/?page=${i}"
#循环N次,将需要下载的img的url保存到imgurl.txt
echo "当前处理第$i个url" curl $base_url | egrep -o '(<img)()*(.*)(data-original=")(.*)"(.*)(>)' | egrep -o '(data-original=")(.*)"' | sed -r 's/" data-backup=.*?//g;s/data-original="//g' >> $save_path_name/imgurl.txt done #计数
file_count=; #一行一行遍历刚刚保存url的imgurl.txt文件
#sort imgurl.txt | uniq 代表去除重复行
for line in `sort $save_path_name/imgurl.txt | uniq`
do
#%s 从1970年1月1日00::00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
#curl -o 表示把输出写到该文件中,即指定文件名并写到文件
type=${line##*.}
file_name=$(date +%s%N)".$type"
file_count=`expr $file_count + `
echo "当前下载第$file_count个图片"
curl -o $save_path_name/$file_name $line
done
[root@L shells]# vim doutu.sh
[root@L shells]# cat doutu.sh
#!/bin/bash read -p "请输入要爬取的页面数(默认为10):" page_num
page_num=${page_num:-}
echo $page_num
read -p "请输入要保存的目录名称(默认为img):" save_path_name
save_path_name=${save_page_name:-"/opt/img"}
[ ! -d $save_path_name ]&&mkdir $save_path_name
echo $save_path_name for i in `seq $page_num`
do base_url="http://www.doutula.com/article/list/?page=${i}"
#循环N次,将需要下载的img的url保存到imgurl.txt
echo "当前处理第$i个url" curl $base_url | egrep -o '(<img)()*(.*)(data-original=")(.*)"(.*)(>)' | egrep -o '(data-original=")(.*)"' | sed -r 's/" data-backup=.*?//g;s/data-original="//g' >> $save_path_name/imgurl.txt done #计数
file_count=; #一行一行遍历刚刚保存url的imgurl.txt文件
#sort imgurl.txt | uniq 代表去除重复行
for line in `sort $save_path_name/imgurl.txt | uniq`
do
#%s 从1970年1月1日00::00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
#curl -o 表示把输出写到该文件中,即指定文件名并写到文件
type=${line##*.}
file_name=$(date +%s%N)".$type"
file_count=`expr $file_count + `
echo "当前下载第$file_count个图片"
curl -o $save_path_name/$file_name $line
done

最新文章

  1. iOS常用第三方
  2. fsimage 和 edits log
  3. android学习笔记50——SQLiteOpenHelper、android实现系统自带样式
  4. UVa OJ 180 - Eeny Meeny
  5. struts2 mybatis spring hibernate 框架 pom.xml配置 下载地址
  6. poj 3621(最优比率环)
  7. bnuoj 16493 Just Pour the Water(矩阵快速幂)
  8. Eclipse查看源码乱码问题
  9. Unity3D手机斗地主游戏开发实战(02)_叫地主功能实现(不定期更新中~~~)
  10. Bate版敏捷冲刺报告--day0
  11. Lisp经典算法
  12. 转:2016年崛起的js项目
  13. C语言第七讲,函数入门.
  14. 3、Python函数详解(0601)
  15. 雷林鹏分享:C# 类型转换
  16. .NET高级代码审计(第四课) JavaScriptSerializer反序列化漏洞
  17. Nginx+uwsgi+Django 的web应用环境部署-完整记录
  18. iOS如何把一个CGPoint存入数组里
  19. android线程控制UI更新(Handler 、post()、postDelayed()、postAtTime)
  20. C# ContentType: &quot;application/json&quot; 请求方式传json参数问题

热门文章

  1. 【转帖】Linux的NUMA机制
  2. 1.3.4 Fork/Join框架
  3. (一)Spring概念
  4. centos8自定义目录安装nginx
  5. opencv实现人脸识别(二) 人脸图像采集模块
  6. 一块40克的砝码,摔成4块,利用天平,刚好可以称出1~40g所有整数克,问:这4块分别是多少克
  7. luogu P1646 [国家集训队]happiness (最小割)
  8. MACD中短线交易系统
  9. 怎样禁用浏览器的Cookie功能
  10. JSP读取properties文件变量