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并存 ...

  10. 使用Scrapy爬取图片入库,并保存在本地

    使用Scrapy爬取图片入库,并保存在本地 上 篇博客已经简单的介绍了爬取数据流程,现在让我们继续学习scrapy 目标: 爬取爱卡汽车标题,价格以及图片存入数据库,并存图到本地 好了不多说,让我们实 ...

随机推荐

  1. hdu 1716(dfs)

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1716     排列2   Problem Description Ray又对数字的列产生了兴趣:现 ...

  2. 基于fitnesse浅析waferslim引擎

    最近在用fitnesse框架做自动化测试,简单总结一下,后边再补充内容. 1.fitnesse简介:后续补 略,见官网 http://www.fitnesse.org/ 2.waferslim引擎之p ...

  3. Linux 连接mysql

    连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提 ...

  4. PHP安装+使用

        curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4       ...... Extracting usr/local/php5-5 ...

  5. [转]CentOS6 Linux上安装ss5服务器

    本文章转自:http://blog.csdn.net/cuiyifang/article/details/10346239 最后我增加了添加防火墙规则的部分.感谢作者. ss5是常见的socks5 p ...

  6. 代码问题: 【ADNet】

    [ADNet]: Yoo S, Yun K, Choi J Y. Action-Decision Networks for Visual Tracking with Deep Reinforcemen ...

  7. android的selector选择器

    1. drawable/actionbar_compat_item.xml 2.drawable/actionbar_compat_item_pressed.xml 3.drawable/action ...

  8. Unity热更新技术整理

    一.热更新学习介绍 1.什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新 ...

  9. 【LeetCode】Remove Duplicates from Sorted Array(删除排序数组中的重复项)

    这道题是LeetCode里的第26道题. 题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数 ...

  10. [kuangbin带你飞]专题四 最短路练习 G MPI Maelstrom

    #include<iostream> #include<cstring> #include<algorithm> #include<iomanip> # ...