博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3批量爬取网页图片
阅读量:5758 次
发布时间:2019-06-18

本文共 2109 字,大约阅读时间需要 7 分钟。

  所谓爬取其实就是获取链接的内容保存到本地。所以爬之前需要先知道要爬的链接是什么。

 

  要爬取的页面是这个:

 

里面有很多不错的图标,目标就是把这些文件图片爬下来,保存成本地图片。

 

 

用python3怎么做呢?

 

第一步:获取要爬取的母网页的内容

import urllib.requestimport reurl = "http://findicons.com/pack/2787/beautiful_flat_icons"webPage=urllib.request.urlopen(url)data = webPage.read()data = data.decode('UTF-8')

 

第二步:对母网页内容处理,提取出里面的图片链接

k = re.split(r'\s+',data)s = []sp = []si = []for i in k :    if (re.match(r'src',i) or re.match(r'href',i)):        if (not re.match(r'href="#"',i)):            if (re.match(r'.*?png"',i) or re.match(r'.*?ico"',i)):                if (re.match(r'src',i)):                    s.append(i)for it in s :    if (re.match(r'.*?png"',it)):        sp.append(it)

 

第三步:获取这些图片链接的内容,并保存成本地图片

cnt = 0cou = 1for it in sp:    m = re.search(r'src="(.*?)"',it)    iturl = m.group(1)    print(iturl)    if (iturl[0]=='/'):        continue;    web = urllib.request.urlopen(iturl)    itdata = web.read()    if (cnt%3==1 and cnt>=4 and cou<=30):        f = open('d:/pythoncode/simplecodes/image/'+str(cou)+'.png',"wb")        cou = cou+1        f.write(itdata)        f.close()        print(it)    cnt = cnt+1

 

保存目录可以自行设定。

 

以下是综合起来的代码:

import urllib.requestimport reurl = "http://findicons.com/pack/2787/beautiful_flat_icons"webPage=urllib.request.urlopen(url)data = webPage.read()data = data.decode('UTF-8')k = re.split(r'\s+',data)s = []sp = []si = []for i in k :    if (re.match(r'src',i) or re.match(r'href',i)):        if (not re.match(r'href="#"',i)):            if (re.match(r'.*?png"',i) or re.match(r'.*?ico"',i)):                if (re.match(r'src',i)):                    s.append(i)for it in s :    if (re.match(r'.*?png"',it)):        sp.append(it)cnt = 0cou = 1for it in sp:    m = re.search(r'src="(.*?)"',it)    iturl = m.group(1)    print(iturl)    if (iturl[0]=='/'):        continue;    web = urllib.request.urlopen(iturl)    itdata = web.read()    if (cnt%3==1 and cnt>=4 and cou<=30):        f = open('d:/pythoncode/simplecodes/image/'+str(cou)+'.png',"wb")        cou = cou+1        f.write(itdata)        f.close()        print(it)    cnt = cnt+1

 

转载于:https://www.cnblogs.com/itlqs/p/5767054.html

你可能感兴趣的文章
实录分享&视频 | 微软Visual Studio Code是这样支持Docker的
查看>>
放弃OpenStack?恐怕还不到时候
查看>>
苏宁精准营销之生成人群包的演进
查看>>
.NET开源现状
查看>>
Dave Farley:持续交付的基本原理
查看>>
可替换元素和非可替换元素
查看>>
2016/08/25 The Secret Assumption of Agile
查看>>
遗传算法解背包问题(javascript实现)
查看>>
使用React-route和Webpack快速构建一个react程序
查看>>
php, js, mysql, regexp开发常用速查表
查看>>
六款好用的Python IDE
查看>>
JDK 11 已处于特性冻结状态,看看 Java 11 API 变更提案
查看>>
tvOS 入门:开发你的第一个 tvOS 应用
查看>>
Edge 浏览器有秘密白名单,允许 Facebook 运行 Flash 代码
查看>>
KDE Plasma 5.15.3 发布,Plasma 桌面环境
查看>>
OpenGL初学--环境配置和视景体初步接触
查看>>
Chrome 新增 Focus Mode 功能,或帮助用户更专注使用
查看>>
Oracle集群技术 | OLR与套接字文件(二)
查看>>
Spring和Hibernate集成配置事务管理
查看>>
Python零基础学习代码实践 —— 99乘法表
查看>>