极速爬取下载站酷(https://www.zcool.com.cn/设计师/用户上传的全部照片/插画等图片。

项目地址:https://github.com/lonsty/scraper

特点:

  1. 极速下载:多线程异步下载,可以根据需要设置线程数
  2. 异常重试:只要重试次数足够多,就没有下载不下来的图片 (o)/
  3. 增量下载:设计师/用户有新的上传,再跑一遍程序就行了 O(∩_∩)O嗯!
  4. 支持代理:可以配置使用代理

环境:

  • python3.6及以上

1. 快速使用

1) 克隆项目到本地

git clone https://github.com/lonsty/scraper

2) 安装依赖包

cd scraper
pip install -r requirements.txt

3) 快速使用

通过用户名username下载所有图片到路径path下:

python crawler.py -u <username> -d <path>

运行截图

爬取结果

2. 使用帮助

  • 查看所有命令
python crawler.py --help
Usage: crawler.py [OPTIONS]

  Use multi-threaded to download images from https://www.zcool.com.cn in
bulk by username or ID. Options:
-i, --id TEXT User id.
-u, --username TEXT User name.
-d, --directory TEXT Directory to save images.
-p, --max-pages INTEGER Maximum pages to parse.
-t, --max-topics INTEGER Maximum topics per page to parse.
-w, --max-workers INTEGER Maximum thread workers. [default: 20]
-R, --retries INTEGER Repeat download for failed images. [default: 3]
-r, --redownload TEXT Redownload images from failed records.
-o, --override Override existing files. [default: False]
--proxies TEXT Use proxies to access websites.
Example:
'{"http": "user:passwd@www.example.com:port",
"https": "user:passwd@www.example.com:port"}'
--help Show this message and exit.

3. 更新历史

  • Version 0.1.0 (2019.09.09)

    主要功能:

    • 极速下载:多线程异步下载,可以根据需要设置线程数
    • 异常重试:只要重试次数足够多,就没有下载不下来的图片 (o)/
    • 增量下载:设计师/用户有新的上传,再跑一遍程序就行了 O(∩_∩)O嗯!
    • 支持代理:可以配置使用代理

Python 多线程爬取站酷(zcool.com.cn)图片的更多相关文章

  1. python多线程爬取斗图啦数据

    python多线程爬取斗图啦网的表情数据 使用到的技术点 requests请求库 re 正则表达式 pyquery解析库,python实现的jquery threading 线程 queue 队列 ' ...

  2. python多线程爬取世纪佳缘女生资料并简单数据分析

    一. 目标 ​ 作为一只万年单身狗,一直很好奇女生找对象的时候都在想啥呢,这事也不好意思直接问身边的女生,不然别人还以为你要跟她表白啥的,况且工科出身的自己本来接触的女生就少,即使是挨个问遍,样本量也 ...

  3. Python多线程爬取某网站表情包

    # 爬取网络图片import requestsfrom lxml import etreefrom urllib import requestfrom queue import Queue # 导入队 ...

  4. 用Python爬虫爬取炉石原画卡牌图片

    前段时间看了点Python的语法以及制作爬虫常用的类库,于是动手制作了一个爬虫尝试爬取一些炉石原画图片.本文仅记录对特定目标网站的分析过程和爬虫代码的编写过程.代码功能很局限,无通用性,仅作为一个一般 ...

  5. 【Python爬虫案例学习2】python多线程爬取youtube视频

    转载:https://www.cnblogs.com/binglansky/p/8534544.html 开发环境: python2.7 + win10 开始先说一下,访问youtube需要那啥的,请 ...

  6. python多线程爬取-今日头条的街拍数据(附源码加思路注释)

    这里用的是json+re+requests+beautifulsoup+多线程 1 import json import re from multiprocessing.pool import Poo ...

  7. selenium爬取优酷页面并下载图片

    from selenium import webdriver import requests driver = webdriver.Chrome() #打开优酷 driver.get("ht ...

  8. Python爬虫入门教程: All IT eBooks多线程爬取

    All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着 ...

  9. Python爬虫之爬取站内所有图片

    title date tags layut Python爬虫之爬取站内所有图片 2018-10-07 Python post 目标是 http://www.5442.com/meinv/ 如需在非li ...

随机推荐

  1. Java的面向对象的原则

    1.单一职责原则: /* * (有且只有一个引起功能变化的原因) * 如果在一个类中,承载的功能越多. * 交融的耦合性越高,被复用的可能性越低. * 耦合性高的话,当一个类的职责发生变化的时候,会引 ...

  2. ERROR: CAN'T FIND PYTHON EXECUTABLE "PYTHON", YOU CAN SET THE PYTHON ENV VARIABLE.解决办法

    错误原因:Node.js 在安装模块的时候报错,缺少python环境. 解决办法: 第一种方式: 安装Python及环境变量配置 一定要安装python2.7的版本 环境变量安装可以参考:http:/ ...

  3. ElasticSearch集群状态查看命令大全(转)

    原文地址: https://blog.csdn.net/pilihaotian/article/details/52460747 Elasticsearch中信息很多,同时ES也有很多信息查看命令,可 ...

  4. PowerShell学习笔记

    1,ps7官方文档 2,使用脚本生成帮助文档 function Add-Node { param ( $selectedNode, $name, $tag ) $newNode = new-objec ...

  5. [QT] - MjpegStreamer客户端(简易版)#工程源码

    简介: 大学时期学习弄的一个小软件,可以起到示例的作用,软件的几个功能截图如正文所示,文末提供工程源码文件,感谢支持! 功能截图: [ 开发板启动 mjpg_streamer 服务器 ] [ 启动软件 ...

  6. mysql 允许在唯一索引的字段中出现多个null值

    线上问题:org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [update fl_table ...

  7. Anaconda的pip加速下载命令

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

  8. 基于Keras搭建MLP

    Keras是一套基于Tensorflow.Theano及CNTK后端的高层神经网络API,可以非常友好地支持快速实验,本文从零开始介绍了如何使用Keras搭建MLP并给出两个示例. 基于Ubuntu安 ...

  9. Python入门 常量 注释 基础数据类型 用户输入 流程控制

    Python入门 一.常量 在Python中,不像其他语言有绝对的常量,修改会报错,在Python中有个约定俗成的规定--常量就是将变量名大写. 尽量保持不更改的一种量 , 这个常量有是干什么的呢 其 ...

  10. 【模板】bitset

    Bitset常用操作: bitset<size> s; //定义一个大小为size的bitset s.count(); //统计s中1的个数 s.set(); //将s的所有位变成1 s. ...