最近要进行一类图片的识别,因此需要大量图片,所以我用了python爬虫实现

一、爬取某一图片网站

主要参考:https://www.cnblogs.com/franklv/p/6829387.html
爬取网页:https://www.ivsky.com/search.php?q=罂粟花 (不过这个网页图片太少了)

1.1 代码

在安装相关库后及要爬取的网址后,可直接运行

在程序中相应地方可以更改爬取图片的网址保存图片的路径

'''
程序功能:爬取罂粟花图片
作者:哥
日期:2019.5.15
版本更改说明:'''import requests
from bs4 import BeautifulSoup
import osdef getHtmlurl(url):         #获取网址try:r=requests.get(url)r.raise_for_status()r.encoding=r.apparent_encodingreturn r.textexcept:return ""def getpic(html): #获取图片地址并下载soup =BeautifulSoup(html,'html.parser')all_img=soup.find('ul',class_='pli').find_all('img')for img in all_img:src=img['src']img_url=srcprint (img_url)root='F:/poppy_pic/'path = root + img_url.split('/')[-1]try:                              #创建或判断路径图片是否存在并下载if not os.path.exists(root):os.mkdir(root)if not os.path.exists(path):r = requests.get(img_url)with open(path, 'wb') as f:f.write(r.content)f.close()print("文件保存成功")else:print("文件已存在")except:print("爬取失败")def main():url='https://www.ivsky.com/search.php?q=%E7%BD%82%E7%B2%9F%E8%8A%B1'# 这里我是搜索的罂粟花的图片,可以改成你搜索图片的网址html=(getHtmlurl(url))print(getpic(html))#暂时不支持翻页,想要下载多页不,可以用下面的方式,就是把第二页、第三页的网址复制过来# url='https://www.ivsky.com/search.php?q=%E7%BD%82%E7%B2%9F%E8%8A%B1&PageNo=2'    # 这里我是搜索的罂粟花的图片,可以改成你搜索图片的网址# html=(getHtmlurl(url))# print(getpic(html))
main()

相关库介绍:https://www.cnblogs.com/mzc1997/p/7813801.html
https://blog.csdn.net/qq_42156420/article/details/80784673

二、爬取百度图片

主要参考:https://blog.csdn.net/xiligey1/article/details/73321152
为了能够爬取更多的图片,我用了百度图片,下面是代码:

2.1 代码

'''
程序功能:在百度图片里爬取罂粟花图片
作者:哥
日期:2019.5.15
版本更改说明:'''
# -*- coding: utf-8 -*-
"""根据搜索词下载百度图片"""
import re
import sys
import urllib
import requestsdef get_onepage_urls(onepageurl):"""获取单个翻页的所有图片的urls+当前翻页的下一翻页的url"""if not onepageurl:print('已到最后一页, 结束')return [], ''try:html = requests.get(onepageurl)html.encoding = 'utf-8'html = html.textexcept Exception as e:print(e)pic_urls = []fanye_url = ''return pic_urls, fanye_urlpic_urls = re.findall('"objURL":"(.*?)",', html, re.S)fanye_urls = re.findall(re.compile(r'<a href="(.*)" class="n">下一页</a>'), html, flags=0)fanye_url = 'http://image.baidu.com' + fanye_urls[0] if fanye_urls else ''return pic_urls, fanye_urldef down_pic(pic_urls):"""给出图片链接列表, 下载所有图片"""for i, pic_url in enumerate(pic_urls):try:pic = requests.get(pic_url, timeout=15)string = str(i + 1) + '.jpg'with open(string, 'wb') as f:f.write(pic.content)print('成功下载第%s张图片: %s' % (str(i + 1), str(pic_url)))except Exception as e:print('下载第%s张图片时失败: %s' % (str(i + 1), str(pic_url)))print(e)continueif __name__ == '__main__':keyword = '罂粟花'  # 关键词, 改为你想输入的词即可, 相当于在百度图片里搜索一样url_init_first = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd=1497491098685%5E00_1519X735&word='url_init = url_init_first + urllib.parse.quote(keyword, safe='/')all_pic_urls = []onepage_urls, fanye_url = get_onepage_urls(url_init)all_pic_urls.extend(onepage_urls)fanye_count = 0  # 累计翻页数while 1:onepage_urls, fanye_url = get_onepage_urls(fanye_url)fanye_count += 1# print('第页' % str(fanye_count))if fanye_url == '' and onepage_urls == []:breakall_pic_urls.extend(onepage_urls)down_pic(list(set(all_pic_urls)))

运行过程

图片是保存在py文件同文件夹下

利用python爬虫大量爬取网页图片相关推荐

  1. Python爬虫:爬取网页图片

    目录 开始: 分析与步骤: 第一步 第二步 第三步 第四步 最后: 开始: 最近在自学爬虫,自己也做了一些实例,(自认为)写的比较好的就是对整个网站的爬取了.接下来我将会说一说我使用的工具及方法. 注 ...

  2. python爬虫实验——爬取网页图片+网页源代码

    爬虫图片 本实验将利用python程序抓取网络图片,完成可以批量下载一个网站的照片.所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 原理 1.网络爬虫 即Web Spi ...

  3. python爬虫之爬取网页基础知识及环境配置概括

    记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...

  4. python爬虫爬取音乐_利用python爬虫实现爬取网易云音乐热歌榜

    利用python爬虫实现爬取网易云音乐热歌榜 发布时间:2020-11-09 16:12:28 来源:亿速云 阅读:102 作者:Leah 本篇文章给大家分享的是有关利用python爬虫实现爬取网易云 ...

  5. python爬虫实现爬取网页主页信息(html代码)

    python爬虫实现爬取网页主页信息(html代码) 1.爬取网站源码 urllib整体介绍: urllib是一个包,收集几个模块来处理网址 urllib.request打开和浏览url中内容 url ...

  6. node.js 爬虫 实现爬取网页图片并保存到本地

    node.js 爬虫 实现爬取网页图片并保存到本地 没有废话直接看代码 /*** 请求网站数据* 将数据保存本地文件*/ //不同协议引用不同模块,http https const http = re ...

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

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

  8. python爬虫——批量爬取百度图片

    最近做项目,需要一些数据集,图片一张一张从网上下载太慢了,于是学了爬虫. 参考了大佬的文章:https://blog.csdn.net/qq_40774175/article/details/8127 ...

  9. Python爬虫基础 爬取网页 访问网页

    前段时间又被人问了会不会爬虫,然后感觉现在爬取数据好像还是挺有用的,所以就在网上找了课程学习了一下,利用Python对网站进行爬取和解析等等.原来使用过八爪鱼这个软件,不太需要有什么编程基础,但是也已 ...

最新文章

  1. MySQL Server系统架构
  2. java 集合框架(一)
  3. linux 监控进程是否存在并重启进程、打印进程日志
  4. centos mysql 访问_centos下mysql开启远程访问
  5. new、delelte和malloc、free的关系
  6. linux select 服务器,Linux下用select()实现异步的Echo服务器
  7. Ajax PHP 边学边练 之二 实例
  8. easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
  9. c语言程序设计对称数,c语言程序设计--对称数
  10. 太赞了!终于有人把怎么在IDEA中使用Java热部署插件JRebel讲清楚了...
  11. eclipse中无法新建Android工程 出现问题:Plug-in org.eclipse.ajdt.ui was unable to load
  12. 矩阵运算_Eigen使用_基本数据类型
  13. 挑战性题目DSCT301:求不同形态的二叉树数目
  14. 超详细 CSS动画-animation
  15. 格物致知诚意正心修身齐家治国平天下是什么意思【转载】
  16. openpyxl批量删除表格中的空白行,并处理数据样式
  17. python求平均数直到0出现while_Python第一周 学习笔记(2)
  18. 找不到战网服务器ip地址,wow服务器ip地址-我怎么知道战网服务器的IP地址去PING, – 手机爱问...
  19. ORAN C平面 Section Type 6
  20. Windows CMD 访问UCN路径

热门文章

  1. 快鲸scrm教你用游戏化思维做社群运营
  2. 网络分流器|网络分流器|网络分流采集器的应用领域
  3. 小伙获25位美国总统签名 价值数百万(图)
  4. c++调节控制台字体(c++入门练习)
  5. Microchip Studio 7.0项目移植(从ICC AVR移植到Microchip Studio 7.0)
  6. css选中父元素下的第一个子元素
  7. 单细胞分析:归一化和回归(八)
  8. 怎样在今日头条引流卖产品?今日头条免费引流技巧?
  9. win10计算机如何调到桌面上,win10系统下怎么将计算器放在桌面上
  10. 自己动手写Spring-1-简单的IOC实现