最近在Github发现一个基于google浏览器的爬虫项目,此项目是由美国大神2018年开源的。这个开源项目不需要使用者再去手写核心爬虫,只需要下载安装,然后传入一些配置参数即可。重要的能做到google图片的无限量爬取,只有不想爬的图片,没有爬不到的。下来就介绍一下这个牛逼的开源项目。

前沿

这是一个命令行python程序,用于搜索Google Images上的关键字/关键短语,并可选择将图像下载到您的计算机。还可以从另一个python文件调用此脚本。

如果只想为每个关键字下载最多100个图像,则无需安装依赖项。如果您想要每个关键字超过100个图像,需要同时安装Selenium库chromedriver。故障排除部分中的详细说明。

Github地址:https://github.com/hardikvasa/google-images-download

项目介绍

google-images-download

此项目开源到现在一年的时间,就已经收割了3900+star,真的不得不跪拜大神的能力,能将一个简单的爬虫做到如此牛逼的地步。

当然,这么热门的项目,也不是一个人短时间完成的。Github上显示,此项目的贡献者就高达26人,代码总共提交了133次。此项目能收到这么多star,还是在于更多的贡献者和后期的不断维护升级。

这个项目在github也做了具体的使用说明和介绍,大家可以根据自身的项目情况进行配置即可(为了方便阅读,通过google翻译为中文)。

关于此项目使用这里多逼逼几点:

版本要求:
该项目作者GitHub上说python2x与Python3x都可以,推荐Python3。

项目使用:有2种使用方式

方式一:使用pip安装报的方式(推荐)

pip install  google_images_download

方式二:手动下载

git clone https://github.com/hardikvasa/google-images-download.git
cd google-images-download && sudo python setup.py install

图片数量:
google搜索关键字首页默认100张图片,要抓取更多的图片,就得增加翻页功能。此项目已经实现了翻页功能,只需要使用者同时安装Selenium库chromedriver,代码里面配置即可。

参数方式:
原作者对参数的传递形式和每一个参数都做了详细的说明,大家可以github详细了解。

使用案例

这里给大家分享一下如何将此项目用来爬取去自己需要的图片。原作者介绍了几种关键字输入的方式。这里以文件读取的形式将关键字传入。这里爬取图片的数量选为500张,需要下载、安装Selenium库chromedriver。

1、搭建爬虫环境

pip install selenuium
pip install requests
pip install google_images_download

2、下载chromedriver驱动
因为下载的图片数量大于100,所以还需要在安装chromedriver,在代码配置chromedriver位置即可。

首先要查看自己电脑上安装的google浏览器版本号

github给的下载路径国内是无法下载的,不过小编已经将大多数驱动下载下来,需要的可以后台私信获取。当然也可以通过别的渠道获取。

在chrome官网找到与本机的google浏览器版本号一致的chromedriver

下载完后,安装的路径根据操作系统自己指定。我使用的时win系统,安装在了D盘,具体路径如下:

“D:\download\chromedriver.exe”

3、编辑爬取的关键字文件:
如图所示,只需要在keywords.csv文件里面按图所示填写对应老师的名称即可。

4、代码展示:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,
群里还有不错的视频学习教程和PDF电子书!
'''
import csv
import os
import sysfrom google_images_download import google_images_download# 实例化一个下载器
downloader = google_images_download.googleimagesdownload()BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, BASE_DIR)# 读取关键字文件
csv_file = csv.reader(open(BASE_DIR + "\google_images\keywords.csv", "r"))def download_images(csv_file):"""传入关键字等参数,下载对应的图片文件files: 读取的关键字文件limit: 爬取的图片数量print_urls: 是否显示爬取的图片urlchromedriver: chromedriver安装的路径。不填此参数,默认爬取前100张图片output_directory:自定义保存图片的位置"""for key_word in csv_file:arguments = {"keywords": key_word, "limit": 500, "print_urls": True,"chromedriver": "D:\download\chromedriver.exe","output_directory": BASE_DIR + "\\files\\"}downloader.download(arguments)if __name__ == '__main__':download_images(csv_file)

运行:python google_download.py,你就会发现有源源不断的老师图片进入你的硬盘,接下来就是坐等爬完所有你要的图片了。

此文章主要还是给大家分享这个开源项目,至于使用,本文只是做了一个简单的使用,想要了解更多的,可以直接在github查看。在实际中,我们可以利用这个python脚本去爬取基于google的任何图片了。

用Python爬一爬那些年你硬盘存过的老师相关推荐

  1. 用Python爬一爬那些年你硬盘存过的老师们,太方便啦!

    最近在Github发现一个基于google浏览器的爬虫项目,此项目是由美国大神2018年开源的.这个开源项目不需要使用者再去手写核心爬虫,只需要下载安装,然后传入一些配置参数即可.重要的能做到goog ...

  2. 爬一爬那些年你硬盘存过的“老师”

    作者 | PayneLi 转载自Python全家桶(ID: python-0321) 人工智能的现状及今后发展趋势如何?  https://edu.csdn.net/topic/ai30?utm_so ...

  3. 爬一爬那些年你硬盘存过的老师

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自Python全家桶,禁二次转载 除非你能在床上赚钱,否则就不要赖在床上! -- ...

  4. python爬去百度文库_利用Python语言轻松爬取数据[精品文档]

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  5. python爬取贴吧所有帖子-Python实现的爬取百度贴吧图片功能完整示例

    本文实例讲述了Python实现的爬取百度贴吧图片功能.分享给大家供大家参考,具体如下: #coding:utf-8 import requests import urllib2 import urll ...

  6. 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)

    前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...

  7. [python] 常用正则表达式爬取网页信息及分析HTML标签总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

  8. [python学习] 简单爬取维基百科程序语言消息盒

    文章主要讲述如何通过Python爬取维基百科的消息盒(Infobox),主要是通过正则表达式和urllib实现:后面的文章可能会讲述通过BeautifulSoup实现爬取网页知识.由于这方面的文章还是 ...

  9. python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址

    随着人们生活水平的提高,肯德基这类的快餐消费的十分火爆,成为小朋友和年轻人的最爱,我们到一个地方想要找到肯德基店面,会根据导航获取肯德基地址,那你知道我们也可以使用python爬虫获取KFC地址吗?我 ...

最新文章

  1. 深入解析Angular Component的源码示例
  2. Delphi、C#之父Anders Hejlsberg首次访华 推广TypeScript
  3. 太炫酷了!逼格高的键盘敲代码贼爽!包邮送到家!
  4. 第三章 数据的图形展示
  5. spring 加载java类_在Spring中基于Java类进行配置的完整步骤
  6. php页面转发,php如何实现页面路由转发
  7. python画roc曲线需要什么数据,我如何根据这些数据绘制ROC曲线?
  8. pop python3_python3 -- 堆(heapq)
  9. JAVA中常用接口的介绍及使用示例 java lang Comparable
  10. Linux安装wireshark并配置权限
  11. springboot启动时报错:Failed to load property source from location 'classpath:/application.yml'
  12. 《机电传动控制》学习笔记-07
  13. UGUI更换图片的三种方法
  14. 汇编语言将正负数复制到不同的数组
  15. 搞懂Java代理和反射一篇就够了
  16. 自动量程万用表的实现原理_自动量程万用表设计方案
  17. android offtime编程,OFFTIME - 做功课就憋玩手机了! - Android 应用 - iPad - 【最美应用】...
  18. 电视与电脑连接html线,电视机与电脑连接的方法
  19. PTA习题 计算某年某月某日是该年中的第几天
  20. 阿里云服务器安装postgresql

热门文章

  1. Ubuntu建立(apache+php+mysql)+phpmyadmin
  2. [转]另一个SqlParameterCollection 中已包含 SqlParameter[解决方案]
  3. pe估值 python_Python编程学习笔记(8)
  4. 自由自在公司进口食品呈现高端消费的趋势
  5. SAP C/4HANA到底包含哪些产品?
  6. SAP SD-销售模式-寄售(客户寄售)
  7. CONVT_NO_NUMBER
  8. SAP BDT业务数据工具集的开发原理及应用实例
  9. 如何在TC里输出下拉列表
  10. SAP企业解决方案SAP Business One敏捷系列—敏捷制造