当前位置: 首页 > 编程日记 > 正文

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

640?wx_fmt=jpeg

作者 | PayneLi

转载自Python全家桶(ID: python-0321)

人工智能的现状及今后发展趋势如何? 

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

最近在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,真的不得不跪拜大神的能力,能将一个简单的爬虫做到如此牛逼的地步。

640?wx_fmt=png

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

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

640?wx_fmt=png

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

  • 版本要求:

    该项目作者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浏览器版本号

640?wx_fmt=png

▲谷歌浏览器版本号▲

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

640?wx_fmt=png

▲github给的下载地址▲

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

640?wx_fmt=png

▲chrome官网对应的驱动版本号▲

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

"D:\download\chromedriver.exe"

3、编辑爬取的关键字文件

如图所示,只需要在keywords.csv文件里面按图所示填写对应老师的名称即可。

640?wx_fmt=png

4、代码展示

import csv
import os
import sys

from 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: 是否显示爬取的图片url
   chromedriver: 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的任何图片了。

(本文为AI科技大本营转载文章,转载请微信联系原作者)

如何挑战百万年薪的人工智能!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

群招募

扫码添加小助手微信,回复:公司+研究方向(学校+研究方向),邀你加入技术交流群。技术群审核较严,敬请谅解。

640?wx_fmt=jpeg

推荐阅读:

  • 90后美女学霸传奇人生:出身清华姚班,成斯坦福AI实验室负责人高徒

  • 如今,你感受到内存技术的“思维速度”了吗?

  • 暴雪游戏遭遇AI“实力”坑队友:四处游走,还不参与战斗

  • 我用Python分析了翟天临的论文,学术还是要认真做啊

  • 快速上手爬虫,有哪些方便实用的工具和服务?

  • C++ 开发者怒了:这个无用的模块设计最终会害死 C++!

  • 程序员写代码没激情该怎么破?

  • 以太坊升级完成你也做不出爆款应用, 就因为你不知道这个!

  • 刚刚,阿里发布了一个重磅技术炸弹,70%的程序员受影响!

640?wx_fmt=png

点击“阅读原文”,查看历史精彩文章。

相关文章:

python 打印调用栈

import tracebackdef BBQ():traceback.print_stack() 引入 traceback 包,在某个函数中执行 traceback.print_stack()。 转载于:https://www.cnblogs.com/yourstars/p/8448471.html

(转)修改ETM,用Ogre实现《天龙八部》地形与部分场景详解(附源码)

本文主要讲的是《天龙八部》游戏的地形和一部分场景的具体实现,使用C, Ogre1.6,我摸索了段时间,可能方法用的并不是最好的,但好歹实现了。文章可能讲得有点罗嗦,很多简单的东西都讲了。我是修改了ETM(Edita…

【Qt】错误GL/gl.h: No such file or directory的解决方法(以及cannot find -lGL解决方法)

1、问题描述 QtCreator第一次编译时&#xff0c;报错GL/gl.h: No such file or directory 错误信息如下&#xff1a; /home/Qt5.6.3/5.6.3/gcc_64/include/QtGui/qopengl.h:136: error: GL/gl.h: No such file or directory include <GL/gl.h> ^2、原因分析 说明系统里…

java并发之同步辅助类CyclicBarrier和CountDownLatch

CyclicBarrier 的字面意思是可循环使用&#xff08;Cyclic&#xff09;的屏障&#xff08;Barrier&#xff09;。它要做的事情是&#xff0c;让一组线程到达一个屏障&#xff08;也可以叫同步点&#xff09;时被阻塞&#xff0c;直到最后一个线程到达屏障时&#xff0c;屏障才会…

投稿近2000,NAACL 2019接收率仅为22.6%|附录取论文名单

整理 | 若名 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 人工智能的现状及今后发展趋势如何&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecsdn_bw 最近真是学术界公布论文产出结果的火热时期&#xff0c;距离计算机视觉领域的顶级盛会 CVPR 2019…

Lucene.Net无障碍学习和使用:索引篇

项目中可能需要再次用到Lucene.Net&#xff0c;利用空闲时间写了个demo&#xff0c;主要涉及到索引的创建、删除、更新和一个简单查询。在本文示例中&#xff0c;Lucene.Net的版本是2.4.0&#xff0c;某些类和方法与最新版本或者较旧的版本有较多不同&#xff0c;希望您阅读顺利…

【ubuntu】vim中鼠标选中时变成 可视模式,不能复制的解决方法

1、问题描述 配置好vim后&#xff0c;打开一个文件&#xff0c;鼠标选中文本时&#xff0c;选中的内容变成可视模式。 可视模式&#xff0c;不能将选中内容复制到剪切板 2、解决方法 在用户根目录下&#xff0c;打开 .vimrc ~$ vi .vimrc 将set mousea 删除或注释掉 3、我的…

Ruby11 拾遗

Agenda LoopExpressionFile Read/WriteDebugProcess & ThreadLoop while a 10 while a > 0puts aa - 1 enduntil a 100until a 0puts aa - 1 endloop a 10loop dobreak if a < 0puts aa - 1 end循环控制 breaknextbreak for x in 1..10break if x 5puts x endne…

CVPR2019|微软、中科大开源基于深度高分辨表示学习的姿态估计算法

作者 | 周强&#xff08;CV君&#xff09; 来源 | 我爱计算机视觉&#xff08;公众号id&#xff1a;aicvml&#xff09; 如何挑战百万年薪的人工智能&#xff01; https://edu.csdn.net/topic/ai30?utm_sourcecsdn_bw 昨天arXiv出现了好几篇被CVPR 2019接收的论文。 其中来自…

本地连接受限制或无法连接怎么办?

一个非常常见的问题&#xff0c;就是我们家用电脑安装宽带后&#xff0c;任务栏上的“本地连接”图标有一个的叹号。查看状态&#xff1a;“受限制或无连接”&#xff0c;点“修复”却无法修复&#xff0c;显示无法获取IP地址&#xff0c;获得私网地址&#xff01;但ADSL又可以…

糟心!苹果无人车裁员190人,程序员却首当其冲

整理 | 琥珀 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 60s测试&#xff1a;你是否适合转型人工智能&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw 仅过了一个多月&#xff0c;苹果公司自动驾驶部门裁员的真相便已浮出水面&#xff0c;该…

【工具】Internet Download Manager( IDM )抓取站点

软件说明&#xff1a; 扒网站的好东西&#xff0c;免费&#xff0c;支持中文 下载地址&#xff08;官网&#xff09; http://www.internetdownloadmanager.com/ 使用方法 https://jingyan.baidu.com/article/a681b0de0be10b3b1943465d.html

2010-12-30

I want to invest in stocks to make a quick buck.我想炒股&#xff0c;尽快赚点儿钱花&#xff11;、Which company are you going to invest in?那你打算买什么股&#xff1f;&#xff12;、Dont put all your eggs in one basket造成不要孤注一掷。&#xff13;、You need…

PFLD:简单、快速、超高精度人脸特征点检测算法

作者 | 周强&#xff08;CV君&#xff09; 来源 | 我爱计算机视觉&#xff08;公众号id&#xff1a;aicvml&#xff09; 60s测试&#xff1a;你是否适合转型人工智能&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw 什么样的算法才是好算法&#xff1f; 真…

Cookie实现记住密码、自动登录

前端代码 <form id"form" action"xxx" method"post"><div><input type"text" name"account" id"account" placeholder"账号"><input type"text" name"pwd" i…

【Ubuntu】VirtualBox+ubuntu中显示摄像头

1、下载插件 https://www.virtualbox.org/wiki/Downloads 2、修改下载的插件的后缀 将后缀名改为vbox-extpack 如下载的插件为Oracle_VM_VirtualBox_Extension_Pack-5.2.14.txt&#xff0c;改为Oracle_VM_VirtualBox_Extension_Pack-5.2.14.vbox-extpack 3、安装插件 点击…

以SIGSEGV为例详解信号处理(与栈回溯)

以SIGSEGV为例详解信号处理(与栈回溯) 信号是内核提供的向用户态进程发送信息的机制, 常见的有使用SIGUSR1唤醒用户进程执行子程序或发生段错误时使用SIGSEGV保存用户错误现场. 本文以SIGSEGV为例, 详细分析信号使用方法, 内核信号的发送与接收机制. 1. 信号处理例程 以下是一…

十个jQuery图片画廊插件推荐

2019独角兽企业重金招聘Python工程师标准>>> jQuery的画廊插件可以将分组图像和多媒体资料转成类似Flash的图像或照片。当幻灯片已经成为网站的重要组成部分&#xff0c;jQuery的重要性不能被忽视。下面为你介绍了10个最有美感&#xff0c;创新性和创造性的jQuery图…

总结机器学习优质学习文章Top50!

整理 | Jane出品 | AI科技大本营&#xff08;公众号id&#xff1a;rgznai100&#xff09;在过去一年里&#xff0c;我们每个月都会给大家推荐一些优质的、最新的机器学习研究成果或机器学习技术文章&#xff0c;很多文章是从近千篇文章中评选出来的。综合考虑这些文章的更新时间…

【Qt】ubuntu QtCreator的pro文件中使用pkg-config

试验环境 ubuntu14.04.5 opencv2.4.13.6 Qt Creator 4.0.3 Qt 5.6 使用方法 在pro文件中&#xff0c;添加opencv头文件路径 INCLUDEPATH /usr/local/opencv2.4.13.6/include 添加pkg-config –libs opencv CONFIG link_pkgconfig PKGCONFIG opencv 可以在命令行下…

弯曲评论上关于SOC的一段文章【整理】

近几天&#xff0c;弯曲评论上针对一个文章进行了热烈的讨论。这个文章本无关乎SOC&#xff0c;不过&#xff0c;有业界同仁willchen将话题引到了SOC上&#xff0c;并发表了一番言论&#xff0c;整理如下&#xff08;BTW&#xff0c;看着willchen的文字&#xff0c;让我想到了s…

C# richtextbox 自动下拉到最后 方法 RichTextBox读取txt中文后出现乱码

C# richtextbox 自动滚动到最后 光标到最后 自动显示最后一行 private void richTextBox1_TextChanged(object sender, EventArgs e) { richTextBox1.SelectionStart richTextBox1.TextLength; // Scrolls the contents of the control to the current car…

【Qt】在Qt中使用opencv,不要使用opencv创建窗口

问题描述 在ubuntu14.04.5 Qt5.6中使用opencv创建窗口显示摄像头时&#xff0c;报错&#xff1a; (:1103): Gtk-WARNING **: gtk_disable_setlocale() must be called before gtk_init() (:1103): GLib-CRITICAL **: Source ID 52 was not found when attempting to remove …

曝贾扬清第二跳,加入阿里!达摩院或将承载中国下一个AI愿景?

整理 | Jane出品 | AI科技大本营&#xff08;公众号id&#xff1a;rgznai100&#xff09;无论是国外还是国内&#xff0c;AI 界的人才动向一直是大家关注的焦点&#xff0c;从 2017 年3 月&#xff0c;吴恩达离职百度&#xff0c;开启创业之路&#xff1b;2018 年 9 月&#xf…

excel表格出问题了

我excel文件出问题&#xff0c;所有sheet表的N2表格内容自动替换成了几个固定的文字&#xff0c;出现两次了&#xff0c;第一次我手工改回来了&#xff0c;这有出现了第二次&#xff0c;我不知道是病毒原因&#xff0c;还是其他原因&#xff0c;应该不是我误操作&#xff0c;一…

阿里云凌晨大规模宕机,华北部分网站陷入瘫痪

整理 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;今天凌晨&#xff0c;有不少网友反馈称阿里云疑似出现了宕机故障。据消息称&#xff0c;北京时间 2019 年 3 月 2 日 23:55 分左右开始&#xff0c;监控发现华北 2 地域部分 ECS 实例及部分 EMR、RDS on EC…

java8中的时间处理6 - 格式化

下面是格式化和解析的粒子&#xff1a; LocalDate date LocalDate.now();System.out.println(date);System.out.println(date.format(DateTimeFormatter.ofPattern("d::MMM::uuuu")));System.out.println(date.format(DateTimeFormatter.BASIC_ISO_DATE));LocalDate…

【Qt】ubuntu14.04.5 qt5.6中使用opencv3.4报错:Using GTK+ 2.x and GTK+ 3 in the same process is not supported

问题描述 ubuntu14.04.5 qt5.6中使用opencv3.4报错&#xff1a; Using GTK 2.x and GTK 3 in the same process is not supported 原因 Qt5.6使用的GTK2.x&#xff0c;opencv3.4安装时使用的GTK3。 解决方法 1、降低opencv版本&#xff0c;将opencv3.4更换为opencv2.4 这…

mysql 开启慢查询命令【转】

以MySQL 5.1.36为例&#xff1a;在slow_query_log &#xff08;注意log_slow_querys参数已经废弃&#xff09;值为ON的情况下&#xff08;默认为OFF&#xff09;&#xff0c;当一条SQL语句执行的时间超过了 long_query_time 预设的时间&#xff08;默认为10s&#xff0c;同时精…

不用开着电脑,如何将脚本代码放到服务器上?

作者 | sergiojune 转载自公众号日常学python&#xff08;ID:daily_learn&#xff09; 程序员转行学什么语言&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecsdn_bw 上次弄了个机器人&#xff0c;反响挺不错的&#xff0c;我也挺满意的&#xff0c;因为这个我也初…