目标

date:2020.5.25
author:pmy
aim:爬取google图片,关键词cat,两百张高清图(非缩略图)
现阶段:能够实现目标。在之前爬取谷歌图片的基础上(缩略图),这次进行了改进,爬取高清大图。
存在问题:爬取的效率不高,时间较长,只能完成数量,不能保证所见为所爬。等待之后学习改进

完整代码

# date:2020.5.25
# author:pmy
# aim:爬取google图片
#问题在于,不能保证所爬为所见from selenium import webdriver
import time
import os
import requests# 修改keyword便可以修改搜索关键词 建议也修改存储目录
keyword = 'cat'
url = 'https://www.google.com.hk/search?q=' + keyword + '&source=lnms&tbm=isch'class Crawler_google_images:# 初始化def __init__(self):self.url = url# 获得Chrome驱动,并访问urldef init_browser(self):chrome_options = webdriver.ChromeOptions()chrome_options.add_argument("--disable-infobars")browser = webdriver.Chrome(chrome_options=chrome_options)# 访问urlbrowser.get(self.url)# 最大化窗口,之后需要爬取窗口中所见的所有图片browser.maximize_window()return browser# 下载图片def download_images(self, browser, num=100):#存储路径picpath = './cat'# 路径不存在时创建一个if not os.path.exists(picpath): os.makedirs(picpath)count = 0  # 图片序号pos = 0# print(num)while (True):try:# 向下滑动js = 'var q=document.documentElement.scrollTop=' + str(pos)pos += 500browser.execute_script(js)time.sleep(1)# 找到图片# html = browser.page_source#也可以抓取当前页面的html文本,然后用beautifulsoup来抓取# 直接通过tag_name来抓取是最简单的,比较方便img_elements = browser.find_elements_by_xpath('//a[@class="wXeWr islib nfEiy mM5pbd"]')try:for img_element in img_elements:#点开大图页面img_element.click()time.sleep(0.5)try:# 这里balabala里面有好几个,所以要过滤一下# 取名好烦哦···balabalas = browser.find_elements_by_xpath('//img[@class="n3VNCb"]')if (balabalas):for balabala in balabalas:src = balabala.get_attribute('src')#过滤掉缩略图和无关干扰信息if src.startswith('http') and not src.startswith('https://encrypted-tbn0.gstatic.com'):print('Found' + str(count) + 'st image url')# img_url_dic.append(src)self.save_img(count, src, picpath)count += 1#爬取到指定数量图片后退出if (count >= num):return "stop"except:print('获取图片失败')#回退browser.back()time.sleep(0.3)except:print('获取页面失败')except:print("划不动了")def save_img(self, count, img_src, picpath):filename = picpath + '/' + str(count) + '.jpg'r = requests.get(img_src)with open(filename, 'wb') as f:f.write(r.content)f.close()def run(self):self.__init__()browser = self.init_browser()self.download_images(browser, 100)  # 可以修改爬取的图片数browser.close()print("############爬取完成")if __name__ == '__main__':craw = Crawler_google_images()craw.run()

爬取效果


爬虫实战 谷歌图片爬取 高清图片相关推荐

  1. 用python画易烊千玺_竟然如此简单!输入明星名字就可以直接爬取高清图片

    听说你在自己喜欢的明星壁纸?比如李易峰,王一博,易烊千玺.王源.王俊凯,李现等.今天教你批量下载这些明星高清壁纸(文末有福利) 最近图慌,闲来无事爬取李易峰的高清图片,当做手机壁纸也是不错的选择.废话 ...

  2. 竟然如此简单!输入明星名字就可以直接爬取高清图片

    听说你在自己喜欢的明星壁纸?比如李易峰,王一博,易烊千玺.王源.王俊凯,李现等.今天教你批量下载这些明星高清壁纸(文末有福利) 最近图慌,闲来无事爬取李易峰的高清图片,当做手机壁纸也是不错的选择. 废 ...

  3. 百度图片爬虫,爬取高清图片

    在做深度学习研究与应用的时候,经常需要爬取样本,例如,超分辨率重建,实际的训练与产品应用中,你需要爬取一些高清的图片,下面提供一个简单的爬虫: # coding=utf-8 import re imp ...

  4. python爬虫爬取高清图片——爬虫入门

    自动抓取某图片网站高清壁纸并下载保存 使用requests请求网页,bs4解析数据 话不多说直接看代码,刚学不久欢迎指点 #-*- codeing = utf-8 -*- #@Time : 2022/ ...

  5. 爬虫实战:批量爬取京东内衣图片(自动爬取多页,非一页)

    做下男生想做的事,爬取大量妹子内衣图. 作者: 电气-余登武 准备工作 假如我们想把京东内衣类商品的图片全部下载到本地,通过手工复制粘贴将是一项非常庞大的工程,此时,可以用python爬虫实现. 第一 ...

  6. 爬虫实例(二)—— 爬取高清4K图片

    大家好,我是 Enovo飞鱼,今天继续分享一个爬虫案例,爬取高清4K图片,加油

  7. 爬虫实战5:爬取全部穿越火线武器的图片以武器名称命名保存到本地文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 穿越火线官网 完整代码 运行结果 穿越火线官网 完整代码 import requests# 循环33次,官网武器库展示有33页 ...

  8. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  9. Python爬虫实战一之爬取糗事百科段子

    点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...

  10. 爬虫实战6:爬取英雄联盟官网五个位置的综合排行榜保存到excel

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 英雄联盟官网 获取一个位置的综合排行榜所有数据(上单为例) 获取所有位置的综合排行榜所有数据 英雄联盟官网 获取一个位置的综合排 ...

最新文章

  1. opengl深度缓冲获得的深度图精度太低_深度学习行人重识别ReID最新综述与展望...
  2. javascript学习笔记2
  3. 不会Object.defineProperty你就out了
  4. 除了写代码,还能如何晋升为高级工程师?
  5. Android 黑色样式menu
  6. ASP.NET 缓存(10)
  7. vba连接mysql前的准备_VBA连接MYSQL数据库方法及案例
  8. 数学建模笔记(十):博弈模型
  9. 一种基于A* 算法的动态多路径规划算法
  10. 中国石油燃气蓄能器市场深度研究分析报告(2021)
  11. html 加爱心符号,心形符号大全
  12. android的筛选功能,android实现筛选菜单效果
  13. 80后的青春里,总有散不去的周杰伦
  14. 什么是全栈工程师?前端后端是做什么的?
  15. 美创科技深度参编的《数据安全治理实践指南(2.0)》发布
  16. 优秀的JavaScript模块是怎样炼成的
  17. useradd与adduser(更全面)创建用户命令 和 让用户拥有root权限
  18. Git 命令行的各种退出方式
  19. [安卓逆向]android adb常用命令及使用案例
  20. LightOJ 1070 Algebraic Problem (推导+矩阵快速幂)

热门文章

  1. 《曾文正公家书》摘录一
  2. discuz模板风格制作入门
  3. java根据ip地址获取详细地域信息
  4. 美团23届秋招全面启动!5000+机会,60+岗位,3次笔试机会!
  5. 有哪些测试反应速度的软件,用批处理实现的反应速度测试工具
  6. SSM-Mybatis的Mapper.xml配置文件
  7. TestNG 单元测试框架的使用
  8. 遇到slideUp Down 问题
  9. 《如何有效阅读一本书-超实用笔记读书法》
  10. 国土空间用途管制制度构建的思考