zoukankan      html  css  js  c++  java
  • shell爬取斗图网

    #!/bin/bash
    
    read -p "请输入要爬取的页面数(默认为10):" page_num
    page_num=${page_num:-10}
    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 1 $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=0;
    
    #一行一行遍历刚刚保存url的imgurl.txt文件
    #sort imgurl.txt | uniq 代表去除重复行
    for line in `sort $save_path_name/imgurl.txt | uniq`
    do
        #%s 从1970年1月1日00:00:00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
        #curl -o 表示把输出写到该文件中,即指定文件名并写到文件
        type=${line##*.}
        file_name=$(date +%s%N)".$type"
        file_count=`expr $file_count + 1`
        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:-10}
    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 1 $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=0;
    
    #一行一行遍历刚刚保存url的imgurl.txt文件
    #sort imgurl.txt | uniq 代表去除重复行
    for line in `sort $save_path_name/imgurl.txt | uniq`
    do
        #%s 从1970年1月1日00:00:00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
        #curl -o 表示把输出写到该文件中,即指定文件名并写到文件
        type=${line##*.}
        file_name=$(date +%s%N)".$type"
        file_count=`expr $file_count + 1`
        echo "当前下载第$file_count个图片"
        curl -o $save_path_name/$file_name $line 
    done
  • 相关阅读:
    纯CSS气泡框实现方法探究
    CSS教程:div垂直居中的N种方法[转]
    内容超过长度后以省略号显示
    mCustomScrollbar
    js获取页面元素距离浏览器工作区顶端的距离
    nicescroll参数
    input-placeholder获取焦点清空
    bootstrap去除默认的点击留白处摸态框消失
    【转载 | 笔记】IIS无法删除应该程序池 因为它包含X个应用程序
    【转载】npm查看全局安装过的包
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10119461.html
Copyright © 2011-2022 走看看