一、相关版本说明

python 3.8.8
selenium 4.8.3
requests 2.25.1

注意:selenium不同的版本调用的方法函数不同,请及时关注selenium的官网库说明

二、代码

拷贝粘贴修改保存图片的路径即可使用,路径配置在 picpath上,随着搜索的关键字不一样,则会分别创建和将其图片保存在该关键字的文件夹内。
注意:本次配置的是火狐浏览器,切换谷歌可直接将webdriver.Firefox()替换为webdriver.Chrome()即可。
将代码拷贝粘贴一键运行即可,默认配置的是爬取三页图片,可在底部自行修改。

from selenium import webdriver
import time
import os
import requests
from selenium.webdriver.common.by import By
# 搜索关键词
keyword = '猫'
url = 'https://www.google.com.hk/search?q=' + keyword + '&tbm=isch'class Crawler_google_images:# 初始化def __init__(self):self.url = url# 获得Firefox驱动,并访问urldef init_browser(self):browser = webdriver.Firefox()# 访问urlbrowser.get(self.url)# 最大化窗口,之后需要爬取窗口中所见的所有图片browser.maximize_window()return browser# 下载图片def download_images(self, browser, round=2):picpath = '/Users/user/Desktop/photo/{}/'.format(keyword)# 路径不存在时创建一个if not os.path.exists(picpath): os.makedirs(picpath)# 图片序号count = 0pos = 0for i in range(round):# 记录爬取当前的所有urlimg_url_dic = []pos += 500# 向下滑动js = 'var q=document.documentElement.scrollTop=' + str(pos)# 执行js代码,使滚动条每次滚动500像素browser.execute_script(js)# 执行完滚动条之后等待3秒time.sleep(3)# 获取谷歌图片所在的标签名,即'img'img_elements = browser.find_elements(by=By.TAG_NAME, value='img')# 遍历抓到的所有webElementfor img_element in img_elements:# 获取每个标签元素内部的url所在连接img_url = img_element.get_attribute('src')if isinstance(img_url, str):# 过滤掉无效的urlif len(img_url) <= 200:# 将无效goole图标筛去if 'images' in img_url:# 每次爬取当前窗口,或许会重复,因此进行去重if img_url not in img_url_dic:try:img_url_dic.append(img_url)# 下载并保存图片到当前目录下filename = picpath + str(count) + ".jpg"r = requests.get(img_url)with open(filename, 'wb') as f:f.write(r.content)f.close()count += 1print('this is ' + str(count) + 'st img')# 防止反爬机制time.sleep(0.5)except:print('failure')def run(self):self.__init__()browser = self.init_browser()# 可以修改爬取的页面数,基本10页是100多张图片self.download_images(browser, 3)browser.close()print("爬取完成")if __name__ == '__main__':craw = Crawler_google_images()craw.run()

使用selenium爬取谷歌图片相关推荐

  1. 一个爬取谷歌图片的python程序

    查看了一些别人写的代码,照着大体的模板,写了一个自己的版本,亲测可用. 输入:一个文本,关键词断行分隔. 特点:一类别一文件夹,可使用自定义多线程下载,可自定义下载图片数目上限. #!/usr/bin ...

  2. 百度小程序html解析图片过大_如何快速高效爬取谷歌百度必应的图片

    导读 有些时候我们需要构建一个自己的数据集来训练模型.但是,却苦于没有大量的数据,此时就需要去谷歌.百度.必应搜索引擎上去爬取一些图片作为自己的数据集. 很自然的,我们就会想到写一个爬虫的程序去爬取图 ...

  3. 《爬虫》爬取谷歌网页“人脸”图片

    爬取谷歌网页搜索的关于"人脸"的图片 目标:谷歌搜索"人脸" 网页搜索出现的图片 selenium:模拟浏览器的工具.(还需要下载ChromeDriver 放到 ...

  4. 【爬虫】Selenium爬取动态网页的base64图片

    文章简介 Selenium爬取动态网页的base64图片,并解决页面完整加载缓慢,base64字符串的获取和格式转码,一些页面不存在,部分照片无法加载等问题.后附源码. 目录 1,需求 2,环境和使用 ...

  5. Python网络爬虫(四):selenium+chrome爬取美女图片

    说明: Python版本:Python IDE:PyCharm chrome版本:我的版本63 chromedriver.exe:因为是模拟浏览器访问,chrome需要再下载一个驱动,具体方式在我的上 ...

  6. 用“小聪明”实现连续爬取谷歌翻译

    爬取谷歌翻译 所需附件stealth.min.js 前提 思路 调整 代码实现 使用备注 所需附件stealth.min.js 来自顽强拼搏的阿k博主的stealth.min.js,下载不需要C币或积 ...

  7. python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息

    python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...

  8. Php使用selenium爬虫,selenium,python爬虫_使用selenium爬取网站时输出结果不正确,selenium,python爬虫 - phpStudy...

    使用selenium爬取网站时输出结果不正确 网站链接:http://www.ncbi.nlm.nih.gov/pubmed?term=(%222013%22%5BDate%20-%20Publica ...

  9. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  10. java爬虫-简单爬取网页图片

    刚刚接触到"爬虫"这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语 ...

最新文章

  1. 24 式加速你的 Python
  2. H.264 RTP payload 格式
  3. 浅谈caffe中train_val.prototxt和deploy.prototxt文件的区别
  4. hdu 5616 Jam's balance(简单dp)
  5. java随机抽题系统_在用java做一个在线考试系统,随机抽题遇到了问题,我写了一个随机抽题的方法,不知道在asp按钮中怎么用...
  6. 【bzoj 2435】[Noi2011]道路修建(dfs)
  7. ORACLE快速遍历树及join基表很大的性能问题
  8. 信息学奥赛一本通C++语言——1120:同行列对角线的格
  9. mysql新建用户只能查看试图_Sql Server:创建用户并指定该用户只能看指定的视图,除此之外的都不让查看。...
  10. MySql access denied for user错误
  11. JavaScript—获取参数(23)
  12. 拓端tecdat|使用GIS制作静态地图和处理地理数据
  13. Oracle创建用户、授权、规则
  14. JAVA编程思想课程视频
  15. R语言meta包的预后meta分析复现
  16. 服务器硬盘检测系统,服务器RAID硬盘与日志主要检测方法
  17. echarts社区地图、echart地图
  18. 数据中心弱电设计及审图的注意事项
  19. python使用mechanize模拟登陆新浪邮箱
  20. 数据库中存储用户名、密码时如何处理?

热门文章

  1. google c++编程规范(重点记录)
  2. 最佳飞机换乘线路查询系统的实现
  3. Sorry this application cannot run under a virtual machine Error
  4. Python教程02-基础
  5. Hqst 网络变压器原理图
  6. 程序设计基础第四版任务4.1:清华附中有4位同学中的一位做了好事不留名,表扬信来了之后,校长问4位同学是谁做的好事。
  7. 荀子:怎样正确地做事?
  8. Mapmagic插件使用
  9. 中国电子学会2023年03月份青少年软件编程Python等级考试试卷五级真题(含答案)
  10. ITU-T Rec. G.988 Amendment 3翻译——9.3 Layer 2 data services