代码:

# nvshens图片批量下载爬虫
from bs4 import BeautifulSoup
import requests
import time
import urllib.request

user_agent='Mozilla/4.0 (compatible;MEIE 5.5;windows NT)'
headers={'User-Agent':user_agent}

# 找到的图片
pictures=[]

# 不断追逐,直到结束
def crawl(url):
    print("爬取页面"+url);

    try:
        rsp=requests.get(url,headers=headers)
        soup= BeautifulSoup(rsp.text,'html.parser',from_encoding='utf-8')
        nextUrl="none";

        for divs in soup.find_all(class_="gallery_wrapper"):
            # 把找到的图片放到数组里去
            for img in divs.find_all('img'):
                print(img.get("src"))
                pictures.append(img.get("src"))

            #找下一页
            for link in divs.find_all('a',class_='a1'):
                if link.string=='下一页' and link.get("href").find('.html')!=-1:
                    nextUrl='https://www.nvshens.com'+link.get("href");

        if nextUrl!="none":
            print("前往下一页");
            crawl(nextUrl)
        else:
            print('爬取结束,开始下载...')
            downloadPics()
    except Exception as e:
        print("发生异常。重新爬行")# 不管怎么出现的异常,就让它一直爬到底
        crawl(nextUrl)

# 下载图片到本地
def downloadPics():
    for pic in pictures:
        name=pic.split('/')[-1]

        rsp=urllib.request.urlopen(pic)
        img=rsp.read()
        with open(name,'wb') as f:
            f.write(img)
        print('图片'+pic+'下载完成')

# Kickoff
crawl('https://www.nvshens.com/g/22210/')

输出示例:

C:\Users\horn1\Desktop\python\7>python downloadall.py
爬取页面https://www.nvshens.com/g/22210/
C:\Users\horn1\AppData\Local\Programs\Python\Python36\lib\site-packages\bs4\__init__.py:146: UserWarning: You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.
  warnings.warn("You provided Unicode markup but also provided a value for from_encoding. Your from_encoding will be ignored.")
https://img.onvshen.com:85/gallery/23789/22210/s/0.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/001.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/002.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/003.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/004.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/2.html
https://img.onvshen.com:85/gallery/23789/22210/s/005.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/006.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/007.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/008.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/009.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/3.html
https://img.onvshen.com:85/gallery/23789/22210/s/010.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/011.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/012.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/013.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/014.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/4.html
https://img.onvshen.com:85/gallery/23789/22210/s/015.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/016.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/017.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/018.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/019.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/5.html
https://img.onvshen.com:85/gallery/23789/22210/s/020.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/021.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/022.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/023.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/024.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/6.html
https://img.onvshen.com:85/gallery/23789/22210/s/025.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/026.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/027.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/028.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/029.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/7.html
https://img.onvshen.com:85/gallery/23789/22210/s/030.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/031.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/032.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/033.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/034.jpg
前往下一页
爬取页面https://www.nvshens.com/g/22210/8.html
https://img.onvshen.com:85/gallery/23789/22210/s/035.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/036.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/037.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/038.jpg
https://img.onvshen.com:85/gallery/23789/22210/s/039.jpg
爬取结束,开始下载...
图片https://img.onvshen.com:85/gallery/23789/22210/s/0.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/001.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/002.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/003.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/004.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/005.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/006.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/007.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/008.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/009.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/010.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/011.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/012.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/013.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/014.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/015.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/016.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/017.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/018.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/019.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/020.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/021.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/022.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/023.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/024.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/025.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/026.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/027.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/028.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/029.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/030.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/031.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/032.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/033.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/034.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/035.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/036.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/037.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/038.jpg下载完成
图片https://img.onvshen.com:85/gallery/23789/22210/s/039.jpg下载完成

感觉Python爬虫是比Nodejs爬虫省事一些。

【pyhon】nvshens图片批量下载爬虫的更多相关文章

  1. 【pyhon】nvshens图片批量下载爬虫1.01

    # nvshens图片批量下载爬虫1.01 # 原先版本在遇到网络故障时回下载不全,这回更改了模式使得下载不成就重新下载,直到全部下载完毕 from bs4 import BeautifulSoup ...

  2. Node.js nvshens图片批量下载爬虫1.01

    //====================================================== // nvshens图片批量下载爬虫1.01 // 用最近的断点续传框架改写原有1.0 ...

  3. Node.js nvshens图片批量下载爬虫 1.00

    //====================================================== // www.nvshens.com图片批量下载Node.js爬虫1.00 // 此程 ...

  4. 【pyhon】nvshens按目录图片批量下载爬虫1.00(多线程版)

    # nvshens按目录图片批量下载爬虫1.00(多线程版) from bs4 import BeautifulSoup import requests import datetime import ...

  5. Node.js abaike图片批量下载爬虫1.02

    //====================================================== // abaike图片批量下载爬虫1.02 // 用最近的断点续传框架改写原有1.01 ...

  6. Node.js meitulu图片批量下载爬虫1.051

    原有1.05版程序没有断点续传模式,现在在最近程序基础上改写一版1.051. //====================================================== // m ...

  7. Node.js mzitu图片批量下载爬虫1.00

    又攻下一座山头. //====================================================== // mzitu图片批量下载爬虫1.00 // 2017年11月19 ...

  8. Node.js 4493图片批量下载爬虫1.00

    这个爬虫依然需要iconv转码,想不到如今非utf8的网页还这么多.另外此网页找下一页的方式比较异常,又再次借助了正则表达式. 代码如下: //============================ ...

  9. Node.js monly图片批量下载爬虫1.00

    此爬虫又用到了iconv转码,代码如下: //====================================================== // mmonly图片批量下载爬虫1.00 ...

随机推荐

  1. NetCore在Centos7上部署和Nginx集群部署访问

    NetCore在Linux上部署 工具:WMWare虚拟机,Wmware12,CentOS7ISO镜像,VS2017 1.安装虚拟机,过程略,网上一搜一大把 2.用VS2017建一个NetCore的W ...

  2. FastReport.Net使用:[24]其他控件(邮政编码(Zip Code),网格文本(Cellular Text)以及线性刻度尺(Linear Gauge))

    邮政编码(Zip Code) Zip Code仅支持数字(0~9) Zip Code支持数据列绑定,表达式,文本等模式 可通过修改SegmentCount属性的值来确定Zip Code的位数. 数字右 ...

  3. java8新特性——Lambda表达式

    上文中简单介绍了一下java8得一些新特性,与优点,也是为本次学习java8新特性制定一个学习的方向,后面几篇会根据上文中得新特性一一展开学习.本文就从java8新特性中比较重要的Lambda表达式开 ...

  4. 看雪论坛 破解exe 看雪CTF2017第一题分析-『CrackMe』-看雪安全论坛

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 逆向 黑客 破解 学习 论坛 『CrackMe』 http://bbs.pediy.co ...

  5. 【BZOJ 4070】【APIO 2015】雅加达的摩天楼

    http://www.lydsy.com/JudgeOnline/problem.php?id=4070 分块建图. 对每个\(P_i\)分类讨论,\(P_i>\sqrt N\)则直接连边,边数 ...

  6. codevs 1392 合并傻子

    1392 合并傻子 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond       题目描述 Description 在一个园形操场的四周站着N个傻子,现要将傻子有 ...

  7. HNOI2012永无乡

    fhq treap+启发式合并,将小的合并到大的上面,复杂度NlogN. 最好的一点是通过dfs将一个子树内的元素转到另一个元素上. By:大奕哥 #include<bits/stdc++.h& ...

  8. Codeforces 1103 C. Johnny Solving

    Codeforces 1103 C. Johnny Solving 题目大意: 有一张 \(n\) 个点 \(m\) 条边的简单无向图,每个点的度数至少为 \(3\) ,你需要构造出两种情况之一 一条 ...

  9. [SDOI2017]数字表格 --- 套路反演

    [SDOI2017]数字表格 由于使用markdown的关系 我无法很好的掌控格式,见谅 对于这么简单的一道题竟然能在洛谷混到黑,我感到无语 \[\begin{align*} \prod\limits ...

  10. [BZOJ4320][ShangHai2006]Homework(根号分治+并查集)

    对于<=sqrt(300000)的询问,对每个模数直接记录结果,每次加入新数时暴力更新每个模数的结果. 对于>sqrt(300000)的询问,枚举倍数,每次查询大于等于这个倍数的最小数是多 ...