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
  • 相关阅读:
    4819: [Sdoi2017]新生舞会 分数规划
    [Sdoi2017]序列计数 矩阵优化dp
    SDOI2017相关分析 线段树
    loj SDOI2017数字表格
    bzoj 2527: [Poi2011]Meteors
    BZOJ2440: [中山市选2011]完全平方数
    GCD与莫比乌斯反演的勾当
    2870: 最长道路tree
    bzoj2152: 聪聪可可 点分治
    3545: [ONTAK2010]Peaks 平衡树,最小生成树
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10119461.html
Copyright © 2011-2022 走看看