爬虫实战 谷歌图片爬取 高清图片

目标

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()

爬取效果

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28571.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬取-搜狗图片

这里我们使用搜狗图片来进行爬取,首先打开搜狗图片网址: https://pic.sogou.com/ 接着在页面上右键–>审查,或者F12选择Network项 然后在页面搜索框输入自己感兴趣的关键字并执行搜索,这里我以中国建筑工人为例,可以…

网络爬虫(基于python的网络爬虫批量爬取图片)

1.模拟用户向指定网站发送请求 需要下载requests模块来模拟用户向网站发送请求,在终端输入如下指令: pip install requests 1> 了解网页结构 学习网页基础(一般由三部分构成,HTML(网页基本骨架)&#x…

Python爬虫抓取网页图片

本文通过python 来实现这样一个简单的爬虫功能,把我们想要的图片爬取到本地。 下面就看看如何使用python来实现这样一个功能。 # -*- coding: utf-8 -*- import urllib import re import time import os#显示下载进度 def schedule(a,b,c):a:已经下载的数据块b:数据…

Python爬取淘宝图片

爬取淘女郎模特图片与相关信息 (一) 解析淘女郎首页网站地址 打开淘女郎首页界面 https://www.taobao.com/markets/mm/mm2017,点击 查看更多,然后 F12 进入网页抓包工具,按 F5观察数据加载变化。审查元素发现&#xff…

【实例】Python爬取淘宝图片

文章目录 一、分析二、代码三、效果 一、分析 》》 第一页时 》》第二页时s48,第三页时s96(每页为48的倍数) 》》当q外套时(q为关键字) 》》用于每页图片的正则表达目标 二、代码 导入请求、报错模块&正则表达式类库 f…

Python3爬虫图片抓取

(1)实战背景 上图的网站的名字叫做Unsplash,免费高清壁纸分享网是一个坚持每天分享高清的摄影图片的站点,每天更新一张高质量的图片素材,全是生活中的景象作品,清新的生活气息图片可以作为桌面壁纸也可以应…

爬虫实战 爬取谷歌图片 Google images

目标 #date:2020.5.25 #author:pmy #aim:爬取google图片 本次爬取主要是为了练习selenium。 分析 爬取的目标如下图,爬取猫猫图片 将google图片顺利爬下来。 由于google图片界面是属于那种往下划会在本页面中加载出更多信息,但未刷新的机…

Python爬虫爬取Google图片

文章目录 urlliburllib.request.urlretrieve urllib3 in python3PoolManagerRequest BeautifulSoup安装 Installation一些函数 Some functionsget_textfind_all(name, attrs, recursive, string, limit, **kwargs)name - 通过标签名搜索kwargs - keyword arguments 关键字参数进…

Python——爬虫抓取图片

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:李晓凯 * 完成日期:2019年 8 月 19 日 * 版 本 号:v1.0 * * 问题描述: * 输入描述: * 程…

python爬虫(爬取图片)

在家无聊写的爬虫程序,用来爬取图片,由于这个是好久之前写的,有点忘了,写的不详细,后面再写一份详细的 爬虫的基本原理就是: 发起请求->获取响应->解析内容->保存数据 第一步:发…

面试常见题(荷兰国旗问题

面试常见题&#xff0c;荷兰三色国旗问题 挺有意思的 #include<bits/stdc.h> using namespace std; int main(){vector<int>str{2, 3, 1, 9, 7, 6, 1, 4, 5,4};int nstr.size();int target4;int l-1,rn;int p0;//这里不能是l<r哦&#xff0c;p代表数组遍历指针…

快速排序之荷兰国旗问题

描述 荷兰国旗有三横条块构成&#xff0c;自上到下的三条块颜色依次为红、白、蓝。现有若干由红、白、蓝三种颜色的条块序列&#xff0c;要将它们重新排列使所有相同颜色的条块在一起。本问题要求将所有红色的条块放最左边、所有白色的条块放中间、所有蓝色的条块放最右边。 …

从糖尿病捆绑支付看荷兰整合医疗

来源:中国数字科技馆 所谓捆绑支付模式,是指对于患有特定疾病的患者,在涉及多个照护提供方的时候,通过单一途径即可支付所接受的所有服务。在荷兰,随着老年人口及慢性疾病患者的增加,整合医疗开始受到政策决策者和保健提供者的关注,并将整合医疗定位为有前瞻性的、多学…

荷兰旗问题(三色旗排序)

摘要&#xff1a; 荷兰旗问题是三色排序&#xff0c;即某一组数据&#xff0c;元素的值只能为a,b ,c。把这组数据按照a, b, c的顺序排序。 本文介绍了一种时间复杂度为O&#xff08;n&#xff09;&#xff0c;空间复杂度O&#xff08;1&#xff09;的算法。 1. 问题描述 某…

荷兰国旗问题(分三块)

在说 “荷兰国旗” 问题之前&#xff0c;首先来看一个引例。 给定一个数组arr&#xff0c;和一个数num&#xff0c;请把小于等于num的数放在数组的左边&#xff0c;大于num的数放在数组的右边。要求额外空间复杂度O(1&#xff09;,时间复杂度 O(N&#xff09; 分析&#xff1…

荷兰国旗问题

Cousera Algorithms PartI第二周课后问答题&#xff0c;有这样一道题&#xff0c;当时没什么想法&#xff0c;直到学了第三周的归并排序&#xff0c;才弄明白要怎么做&#xff0c;这里记录一下自己的想法与最终代码。 问题描述 简而言之&#xff0c;这道题就是有红白蓝三种颜…

算法:荷兰国旗问题

什么是荷兰国旗问题 荷兰国旗是由红白蓝3种颜色的条纹拼接而成&#xff0c;如下图所示&#xff1a; 假设这样的条纹有多条&#xff0c;且各种颜色的数量不一&#xff0c;并且随机组成了一个新的图形&#xff0c;新的图形可能如下图所示&#xff0c;但是绝非只有这一种情况&am…

快排-荷兰国旗

在使用partition-exchange排序算法时&#xff0c;如快速排序算法&#xff0c;我们会遇到一些问题&#xff0c;比如重复元素太多&#xff0c;降低了效率&#xff0c;在每次递归中&#xff0c;左边部分是空的(没有元素比关键元素小)&#xff0c;而右边部分只能一个一个递减移动。…

BUUCTF 荷兰宽带数据泄露

题目 RouterPassView RouterPassView官方下载-RouterPassView中文免费版-华军软件园 ​ RouterPassView,大多数现代路由器允许您备份到一个文件路由器的配置&#xff0c;然后从文件中恢复配置时的需要。路由器的备份文件通常包含了像您的ISP的用户名重要数据/密码&#xff0c…

荷兰国旗问题以及快速排序

文章目录 一、荷兰国旗问题1、啥是荷兰国旗问题2、荷兰国旗问题的抽象3、解决的思路4、详细的参考代码 二、快速排序1、啥是快排&#xff08;排序流程&#xff09;2、抽象后的快排流程3、详细的参考代码 大家好&#xff0c;我是周一。 最近几篇算法&#xff0c;我们都是聊的归…