#!/bin/bash

#ddmm //

#if [ -z $string ] 如果string 为空
#-z STRING the length of STRING is zero read -p "请输入要爬取的页面数(直接回车,默认为10):" page_num
if [ -z $page_num ];then
page_num=
fi
read -p "请输入要保存的文件夹名称(直接回车,默认为img):" save_path_name
if [ -z $save_path_name ];then
save_path_name="img"
fi for i in `seq $page_num`
do #循环N次,将需要下载的img的url保存到imgurl.txt
echo "当前处理第$i个url" #curl https://www.dbmeinv.com/?pager_offset=${i} , curl抓取网页内容
#grep -Eo '<img[^>]*src="[^"]*[^"]*"[^>]*>'
#grep -E表示用扩展正则表达式 -O表示只输出匹配到的部分
#正则解释 linux 的正则不像js,php,java等,个人用的不是很习惯,所以写的也很烂
#<img[^>]*src="[^"]*[^"]*"[^>]*> 匹配一个 img标签;
#[^>]表示匹配除了>以外的字符,*表示0个或多个,so,[^"]*也是同理
#grep -Eo 'src="[^"]*"' 将img标签的src="xxx"部分提取了出来
#sed 's/src="//g' ,s代表替换指定字符,第一个/后面是被替换的字符src=",第二个/后面是替换为的字符(这里替换为空),/g代表全局
#sed 's/"//g' ,与上面同理,将最后一个"去掉
#>> imgurl.txt 将内容拼接到imgurl.txt文件中
curl https://www.dbmeinv.com/?pager_offset=${i} | grep -Eo '<img[^>]*src="[^"]*[^"]*"[^>]*>' | grep -Eo 'src="[^"]*"' | sed 's/src="//g' | sed 's/"//g' >> imgurl.txt done #当前目录下的img文件夹不存在,则新建文件夹
if [ ! -d "./$save_path_name" ]; then
mkdir "./$save_path_name"
fi #计数
file_count=; #一行一行遍历刚刚保存url的imgurl.txt文件
#sort imgurl.txt | uniq 代表去除重复行
for line in `sort imgurl.txt | uniq`
do
#%s 从1970年1月1日00::00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
#curl -o 表示把输出写到该文件中,即指定文件名并写到文件
file_name=$(date +%s%N)".jpg"
file_count=`expr $file_count + `
echo "当前下载第$file_count个图片"
curl -o ./$save_path_name/$file_name $line
done

原理就是:用curl先将图片的img url保存到.txt中,然后再逐个下载,注释写的很详细了,就不累赘讲了

shell 爬取图片下载到本地的更多相关文章

  1. scrapy爬虫系列之三--爬取图片保存到本地

    功能点:如何爬取图片,并保存到本地 爬取网站:斗鱼主播 完整代码:https://files.cnblogs.com/files/bookwed/Douyu.zip 主要代码: douyu.py im ...

  2. 使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)

    初学Scrapy,实现爬取网络图片并保存本地功能 一.先看最终效果 保存在F:\pics文件夹下 二.安装scrapy 1.python的安装就不说了,我用的python2.7,执行命令pip ins ...

  3. Python多线程Threading爬取图片,保存本地,openpyxl批量插入图片到Excel表中

    之前用过openpyxl库保存数据到Excel文件写入不了,换用xlsxwriter 批量插入图片到Excel表中 1 import os 2 import requests 3 import re ...

  4. Python使用Scrapy爬虫框架全站爬取图片并保存本地(妹子图)

    大家可以在Github上clone全部源码. Github:https://github.com/williamzxl/Scrapy_CrawlMeiziTu Scrapy官方文档:http://sc ...

  5. 【Python】- scrapy 爬取图片保存到本地、且返回保存路径

    https://blog.csdn.net/xueba8/article/details/81843534

  6. python +requests 爬虫-爬取图片并进行下载到本地

    因为写12306抢票脚本需要用到爬虫技术下载验证码并进行定位点击所以这章主要讲解,爬虫,从网页上爬取图片并进行下载到本地   爬虫实现方式: 1.首先选取你需要的抓取的URL:2.将这些URL放入待抓 ...

  7. 使用Scrapy爬取图片入库,并保存在本地

    使用Scrapy爬取图片入库,并保存在本地 上 篇博客已经简单的介绍了爬取数据流程,现在让我们继续学习scrapy 目标: 爬取爱卡汽车标题,价格以及图片存入数据库,并存图到本地 好了不多说,让我们实 ...

  8. Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本

    Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本 不知道为什么,我总想用 Shell 脚本来实现把一个站点内容给下载下来.但是下载什么站点我确不知道.今天尝试了一下利用 curl ...

  9. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码

    题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...

随机推荐

  1. MVC ModelState.AddModelError使用

    cshtml:红色部分为使用方法  PostNextDay是 字段 <div id="postNextDay" class="col-xs-12 col-sm-6 ...

  2. mac使用apktool打包回apk

    升级最新版的apktool 下载目录:https://ibotpeaches.github.io/Apktool/install/. 权限修改 将上述的文件放在usr/local/bin目录下并执行 ...

  3. VMware的NAT网络模式

    参考链接:https://www.cnblogs.com/linjiaxin/p/6476480.html 图例:

  4. C++入门篇二

    c++是c语言的增强版,但是和c语言之间有何区别呢? c和c++的区别: 1.全局变量检测增强int a;int a=10; 2.函数检测增强,参数类型增强,返回值检测增强,函数调用参数检测增强(参数 ...

  5. poj 1426 Find The Multiple (简单搜索dfs)

    题目: Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal ...

  6. win10 激活工具 Re-LoaderByR@1n.exe

    名字叫 Re-LoaderByR@1n.exe 无广告, https://pan.baidu.com/s/1MBix1cZxKpUTA6MUgL7uLQ 如果变成教育版,可以用以下激活码变成专业版:W ...

  7. RabbitMQ的Java API编程

    1.创建Maven工程,pom.xml引入依赖: <dependency> <groupId>com.rabbitmq</groupId> <artifact ...

  8. POST Raw JSON提交

    contentType: "application/json", data: JSON.stringify( { org: org, worksite_info: info }), ...

  9. 快速搭建MQTT服务器(MQTTnet和Apache Apollo)

    前言 MQTT协议是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分,http://mqtt.org/. MQTT is a machine-to-machine (M2M)/" ...

  10. 整理一下python中with的用法

    ith替代了之前在python里使用try...finally来做清理工作的方法.基本形式如下: with expression [as variable]: with-block 当expressi ...