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

要爬取的页面是这个:http://findicons.com/pack/2787/beautiful_flat_icons

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

用python3怎么做呢?

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

import urllib.request
import re url = "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 = 0
cou = 1
for 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.request
import re url = "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 = 0
cou = 1
for 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

Python3批量爬取网页图片的更多相关文章

  1. python requests库爬取网页小实例:爬取网页图片

    爬取网页图片: #网络图片爬取 import requests import os root="C://Users//Lenovo//Desktop//" #以原文件名作为保存的文 ...

  2. node:爬虫爬取网页图片

    代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...

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

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

  4. python3爬虫爬取网页思路及常见问题(原创)

    学习爬虫有一段时间了,对遇到的一些问题进行一下总结. 爬虫流程可大致分为:请求网页(request),获取响应(response),解析(parse),保存(save). 下面分别说下这几个过程中可以 ...

  5. erlang 爬虫——爬取网页图片

    说起爬虫,大家第一印象就是想到了python来做爬虫.其实,服务端语言好些都可以来实现这个东东. 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌 ...

  6. 【Python】python3 正则爬取网页输出中文乱码解决

    爬取网页时候print输出的时候有中文输出乱码 例如: \\xe4\\xb8\\xad\\xe5\\x8d\\x8e\\xe4\\xb9\\xa6\\xe5\\xb1\\x80 #爬取https:// ...

  7. 利用Python爬取网页图片

    最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片 ...

  8. python爬取网页图片(二)

    从一个网页爬取图片已经解决,现在想要把这个用户发的图片全部爬取. 首先:先找到这个用户的发帖页面: http://www.acfun.cn/u/1094623.aspx#page=1 然后从这个页面中 ...

  9. Python多线程爬虫爬取网页图片

    临近期末考试,但是根本不想复习!啊啊啊啊啊啊啊!!!! 于是做了一个爬虫,网址为 https://yande.re,网页图片为动漫美图(图片带点颜色........宅男福利 github项目地址为:h ...

随机推荐

  1. 使用Spring时遇到的bug及解决

    1.myeclipse中Spring 不给提示 解决:(1)window – preferences – myeclipse – files and editors – xml – xml catal ...

  2. CORS 跨域 实现思路及相关解决方案

    本篇包括以下内容: CORS 定义 CORS 对比 JSONP CORS,BROWSER支持情况 主要用途 Ajax请求跨域资源的异常 CORS 实现思路 安全说明 CORS 几种解决方案 自定义CO ...

  3. [反汇编练习] 160个CrackMe之007

    [反汇编练习] 160个CrackMe之007. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  4. ubuntu12.04下txt文件乱码如何解决

    :gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8','GB18030','GB2312' ...

  5. dict 字典

    Python 学习笔记[dict的操作方法] Python中dict详解

  6. 【转】statfs获得硬盘使用情况 模拟linux命令 df

    原文网址:http://blog.csdn.net/mociml/article/details/5335474 说明:本文以主要为转载内容,同时加入了我在使用过程中遇到问题对其的修正!!!!!!!! ...

  7. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  8. sharepoint SPFolder的使用

    转:http://blog.csdn.net/pclzr/article/details/7591731 SPFolder是SharePoint对象模型中文件夹相关的类,它的使用方法相对比较简单.获取 ...

  9. HDU 5122 K.Bro Sorting

    K.Bro Sorting Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Tot ...

  10. hdu 5407 CRB and Candies(组合数+最小公倍数+素数表+逆元)2015 Multi-University Training Contest 10

    题意: 输入n,求c(n,0)到c(n,n)的所有组合数的最小公倍数. 输入: 首行输入整数t,表示共有t组测试样例. 每组测试样例包含一个正整数n(1<=n<=1e6). 输出: 输出结 ...