利用python爬虫大量爬取网页图片
最近要进行一类图片的识别,因此需要大量图片,所以我用了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爬虫大量爬取网页图片相关推荐
- Python爬虫:爬取网页图片
目录 开始: 分析与步骤: 第一步 第二步 第三步 第四步 最后: 开始: 最近在自学爬虫,自己也做了一些实例,(自认为)写的比较好的就是对整个网站的爬取了.接下来我将会说一说我使用的工具及方法. 注 ...
- python爬虫实验——爬取网页图片+网页源代码
爬虫图片 本实验将利用python程序抓取网络图片,完成可以批量下载一个网站的照片.所谓网页抓取,就是把URL地址中指定的网络资源从网络流中读取出来,保存到本地. 原理 1.网络爬虫 即Web Spi ...
- python爬虫之爬取网页基础知识及环境配置概括
记:python爬虫是爬取网页数据.统计数据必备的知识体系,当我们想统计某个网页的部分数据时,就需要python爬虫进行网络数据的爬取,英文翻译为 spider 爬虫的核心 1.爬取网页:爬取整个网页 ...
- python爬虫爬取音乐_利用python爬虫实现爬取网易云音乐热歌榜
利用python爬虫实现爬取网易云音乐热歌榜 发布时间:2020-11-09 16:12:28 来源:亿速云 阅读:102 作者:Leah 本篇文章给大家分享的是有关利用python爬虫实现爬取网易云 ...
- python爬虫实现爬取网页主页信息(html代码)
python爬虫实现爬取网页主页信息(html代码) 1.爬取网站源码 urllib整体介绍: urllib是一个包,收集几个模块来处理网址 urllib.request打开和浏览url中内容 url ...
- node.js 爬虫 实现爬取网页图片并保存到本地
node.js 爬虫 实现爬取网页图片并保存到本地 没有废话直接看代码 /*** 请求网站数据* 将数据保存本地文件*/ //不同协议引用不同模块,http https const http = re ...
- java爬虫-简单爬取网页图片
刚刚接触到"爬虫"这个词的时候是在大一,那时候什么都不明白,但知道了百度.谷歌他们的搜索引擎就是个爬虫. 现在大二.再次燃起对爬虫的热爱,查阅资料,知道常用java.python语 ...
- python爬虫——批量爬取百度图片
最近做项目,需要一些数据集,图片一张一张从网上下载太慢了,于是学了爬虫. 参考了大佬的文章:https://blog.csdn.net/qq_40774175/article/details/8127 ...
- Python爬虫基础 爬取网页 访问网页
前段时间又被人问了会不会爬虫,然后感觉现在爬取数据好像还是挺有用的,所以就在网上找了课程学习了一下,利用Python对网站进行爬取和解析等等.原来使用过八爪鱼这个软件,不太需要有什么编程基础,但是也已 ...
最新文章
- MySQL Server系统架构
- java 集合框架(一)
- linux 监控进程是否存在并重启进程、打印进程日志
- centos mysql 访问_centos下mysql开启远程访问
- new、delelte和malloc、free的关系
- linux select 服务器,Linux下用select()实现异步的Echo服务器
- Ajax PHP 边学边练 之二 实例
- easyui弹出窗关闭前调用确认窗口,先关闭页面后调用弹出窗口
- c语言程序设计对称数,c语言程序设计--对称数
- 太赞了!终于有人把怎么在IDEA中使用Java热部署插件JRebel讲清楚了...
- eclipse中无法新建Android工程 出现问题:Plug-in org.eclipse.ajdt.ui was unable to load
- 矩阵运算_Eigen使用_基本数据类型
- 挑战性题目DSCT301:求不同形态的二叉树数目
- 超详细 CSS动画-animation
- 格物致知诚意正心修身齐家治国平天下是什么意思【转载】
- openpyxl批量删除表格中的空白行,并处理数据样式
- python求平均数直到0出现while_Python第一周 学习笔记(2)
- 找不到战网服务器ip地址,wow服务器ip地址-我怎么知道战网服务器的IP地址去PING, – 手机爱问...
- ORAN C平面 Section Type 6
- Windows CMD 访问UCN路径
热门文章
- 快鲸scrm教你用游戏化思维做社群运营
- 网络分流器|网络分流器|网络分流采集器的应用领域
- 小伙获25位美国总统签名 价值数百万(图)
- c++调节控制台字体(c++入门练习)
- Microchip Studio 7.0项目移植(从ICC AVR移植到Microchip Studio 7.0)
- css选中父元素下的第一个子元素
- 单细胞分析:归一化和回归(八)
- 怎样在今日头条引流卖产品?今日头条免费引流技巧?
- win10计算机如何调到桌面上,win10系统下怎么将计算器放在桌面上
- 自己动手写Spring-1-简单的IOC实现