AotucCrawler 快速爬取图片

今天介绍一款自动化爬取图片项目。

GitHub: https://github.com/YoongiKim/AutoCrawler

Google, Naver multiprocess image web crawler (Selenium)

关键字

  • 爬虫网站:Google、Naver (美、韩两大搜索引擎)
  • 运行方式:Multiprocess(多进程)
  • 爬取格式:image (图片)
  • 基于自动化工具:Selenium (不解释)

如何使用

  1. Git克隆AutoCrawler项目到本地

  2. 自行安装 Chrome 浏览器

  3. 安装依赖

> pip -r requirements.txt
  • certifi: 包含了很多可信任知名公司的证书/公钥。
  • chardet:提供自动检测字符编码的功能。
  • idna: 提供"对于RFC5891中定义的IDNA协议(Internationalised Domain Names in Applications)的支持"。
  • requests: 依赖于上面三个基础库,他主要用于根据图片链接下载图片。
  • selenium: 用于启动浏览器,爬取图片链接。
  • webdriver-manager: 用来管理selenium浏览器驱动的项目。

仔细分析别人项目,不管是源码还是依赖库都会有收获。webdriver-manager 就是我发现的一个宝藏项目,它简化的浏览器驱动的管理。

  1. 打开keywords.txt文件,编写爬取的关键字。
cat
dog
  1. 运行main.py 文件
> python main.py

参数说明:

--skip true:如果下载的关键字已经存在,是否跳过关键字,重新下载时需要设置。

--threads 4: 下载使用线程数量

--google true: 从google.com 下载。

--naver true: 从naver.com 下载。

--full false: 下载全分辨率图像而不是缩略图 (慢)。

--face false: Face search mode。

--no_gui auto: 使用 GUI 模式. (headless模式) 全分辨率模式可以加速, 但是缩略图模式不稳定。 默认auto模式,如果full=false 默认使用使用GUI,如果full=true默认Headless模式。(可用于docker linux系统)。

--limit 0: 设置最大图片下载范围。 (0: 无限制)

--proxy-list: 逗号分隔的代理列表,如: socks://127.0.0.1:1080, http://127.0.0.1:1081,每个线程从列表中随即选择一个。

例如:

> python main.py --threads 2 --google true  --naver false --full false --limit 50

  1. 爬取的图片保存于 downloads/ 目录。

小结

  1. 因为使用的是Google网站,没有梯子的同学有点郁闷。项目本身并不复杂,两个python文件加一起不到1000行代码,我们完全可以花点时间替换为国内可访问的搜索引擎。

  2. 下载图片只是为了欣赏猫猫狗狗吗?当然不是,我们可用下载的图片训练 AI。

AotucCrawler 快速爬取图片的更多相关文章

  1. Java jsoup爬取图片

    jsoup爬取百度瀑布流图片 是的,Java也可以做网络爬虫,不仅可以爬静态网页的图片,也可以爬动态网页的图片,比如采用Ajax技术进行异步加载的百度瀑布流. 以前有写过用Java进行百度图片的抓取, ...

  2. python如何使用request爬取图片

    下面是代码的简单实现,变量名和方法都是跑起来就行,没有整理,有需要的可以自己整理下: image2local: import requests import time from lxml import ...

  3. [python爬虫] 爬取图片无法打开或已损坏的简单探讨

    本文主要针对python使用urlretrieve或urlopen下载百度.搜狗.googto(谷歌镜像)等图片时,出现"无法打开图片或已损坏"的问题,作者对它进行简单的探讨.同时 ...

  4. scrapy爬虫,爬取图片

    一.scrapy的安装: 本文基于Anacoda3, Anacoda2和3如何同时安装? 将Anacoda3安装在C:\ProgramData\Anaconda2\envs文件夹中即可. 如何用con ...

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

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

  6. 孤荷凌寒自学python第八十二天学习爬取图片2

    孤荷凌寒自学python第八十二天学习爬取图片2 (完整学习过程屏幕记录视频地址在文末) 今天在昨天基本尝试成功的基础上,继续完善了文字和图片的同时爬取并存放在word文档中. 一.我准备爬取一个有文 ...

  7. 孤荷凌寒自学python第八十一天学习爬取图片1

    孤荷凌寒自学python第八十一天学习爬取图片1 (完整学习过程屏幕记录视频地址在文末) 通过前面十天的学习,我已经基本了解了通过requests模块来与网站服务器进行交互的方法,也知道了Beauti ...

  8. 爬取图片过程遇到的ValueError: Missing scheme in request url: h 报错与解决方法

    一 .scrapy整体框架 1.1 scrapy框架图 1.2 scrapy框架各结构解析 item:保存抓取的内容 spider:定义抓取内容的规则,也是我们主要编辑的文件 pipelines:管道 ...

  9. python网络爬虫之使用scrapy爬取图片

    在前面的章节中都介绍了scrapy如何爬取网页数据,今天介绍下如何爬取图片. 下载图片需要用到ImagesPipeline这个类,首先介绍下工作流程: 1 首先需要在一个爬虫中,获取到图片的url并存 ...

随机推荐

  1. Java基础之(五):数据类型

    Java快捷键 首先我们先来介绍下IDEA的一些快捷键 psvm=public static void main(String[] args) {} sout=System.out.println(& ...

  2. Java(46)类加载器

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201673.html 博客主页:https://www.cnblogs.com/testero ...

  3. python的参数传递是值传递还是引用传递?都不是!

    [写在前面] 参考文章: https://www.cnblogs.com/spring-haru/p/9320493.html[偏理论,对值传递和引用传递作了总结] https://www.cnblo ...

  4. vue.$nextTick实现原理

    源码: const callbacks = [] let pending = false function flushCallbacks () { pending = false const copi ...

  5. Vue3学习(八)之 Vue CLI多环境配置

    一.前言 这里相对于之前就没那么麻烦了,通俗点说就是使用配置文件来管理多环境,实现环境的切换. 二.实现切换 1.增加开发和生产配置文件 在web的根目录下,创建开发环境切换配置文件.env.dev, ...

  6. 【UE4 C++ 基础知识】<6> 容器——TMap

    概述 TMap主要由两个类型定义(一个键类型和一个值类型),以关联对的形式存储在映射中. 将数据存储为键值对(TPair<KeyType, ValueType>),只将键用于存储和获取 映 ...

  7. 在kivy中加图片

    from kivy.app import App from kivy.uix.scatterlayout import ScatterLayout from kivy.uix.image import ...

  8. 软工博客之关于CSDN的移动端软件测评

    关于CSDN的移动端软件测评 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件测评作业 我在这个课程的目标 不求变强,只求做好,成为一颗有用的 ...

  9. 请问为什么要用三极管驱动mos,直接用mos有什么缺点呢?

    可能无法完全导通,电流可能过小使导通所需时间变长,最终导致发热严重       回复 举报     csaaa DIY七级 3# 发表于 2016-7-12 14:11:59 直接驱动mos也没什么问 ...

  10. 如何清理history

    工作中,需要清理history 清理当前会话历史命令    history -c 清理当前用户所有历史命令     echo > .bash_history     #在用户主目录执行此操作