转载自我自己的博客:http://www.mylonly.com/archives/1401.html

用Python的urllib2库和HTMLParser库写了一个简单的抓图脚本,主要抓的是http://desk.zol.com.cn/meinv/这个链接下的图片,通过得到图集的起始URL地址,得到第一张图片,然后不断的去获取其下一个图片的URL,继而得到所有首页的图集的图片。

整个源码如下,比较简单,写这个只是简单的练手而已

#coding: utf-8 #############################################################
# File Name: girls.py
# Author: mylonly
# mail: mylonly@gmail.com
# Created Time: Mon 09 Jun 2014 09:23:18 PM CST
#########################################################################
#!/usr/bin/pythonimport urllib2,HTMLParser,re#根url
host = "http://desk.zol.com.cn"
#本地保存地址
localSavePath = '/data/girls/'
#起始图片html地址
startHtmlUrl = ''
#图片页Html的地址
htmlUrlList = []
#图片Url地址
imageUrlList = []
#根据得到的图片路径URL将图片下载下来保存本地
def downloadImage(url):cont = urllib2.urlopen(url).read()patter = '[0-9]*\.jpg';match = re.search(patter,url);if match:print '正在下载文件:',match.group()filename = localSavePath+match.group()f = open(filename,'w+')f.write(cont)f.close()else:print 'no match'#根据首页得到的图片集遍历每个图片集
def getImageUrlByHtmlUrl(htmlUrl):parser = MyHtmlParse(False)request = urllib2.Request(htmlUrl)try:response = urllib2.urlopen(request)content = response.read()parser.feed(content)except urllib2.URLError,e:print e.reasonclass MyHtmlParse(HTMLParser.HTMLParser):def __init__(self,isIndex):self.isIndex = isIndex;HTMLParser.HTMLParser.__init__(self)def handle_starttag(self,tag,attrs):if(self.isIndex):if(tag == 'a'):if(len(attrs) == 4):if(attrs[0] ==('class','pic')):newUrl = host+attrs[1][1]print '找到一处图片的网页链接:',newUrlglobal startHtmlstartHtmlUrl = newUrlgetImageUrlByHtmlUrl(newUrl)else:if(tag == 'img'):if(attrs[0] == ('id','bigImg')):imageUrl = attrs[1][1]print '找到一张图片:',imageUrldownloadImage(imageUrl)#imageUrlList.append(imageUrl)  if (tag == 'a'):if (len(attrs) == 4):if (attrs[1] == ('class','next')):nextUrl = host + attrs[2][1]print '找到一处图片的网页链接:',nextUrlglobal startHtmlUrlif (startHtmlUrl != nextUrl):getImageUrlByHtmlUrl(nextUrl)
#分析首页得到每个图片集的链接
indexUrl = 'http://desk.zol.com.cn/meinv/'
m = urllib2.urlopen(indexUrl).read()
parserIndex = MyHtmlParse(True)
parserIndex.feed(m

Python爬虫之路——简单的网页抓图相关推荐

  1. 使用Python爬虫爬取简单网页(Python爬虫入门)

    今天我们来看一看使用Python爬取一些简单的网页. 所用工具:IDLE (Python 3.6 64-bit) 一. 爬取京东商品页面 我将要爬取的是这个东京商品页面信息,代码如下: import ...

  2. Python爬虫4.2 — ajax(动态网页数据抓取)用法教程

    Python爬虫4.2 - ajax[动态网页数据]用法教程 综述 AJAX 介绍 什么是AJAX 实例说明 请求分析 获取方式 实例说明 其他博文链接 综述 本系列文档用于对Python爬虫技术的学 ...

  3. Python爬虫:Xpath爬取网页信息(附代码)

    Python爬虫:Xpath爬取网页信息(附代码) 上一次分享了使用Python简单爬取网页信息的方法.但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求.对于一般的数据需求,我们通常需要从一个 ...

  4. python爬虫抓取图片-简单的python爬虫教程:批量爬取图片

    python编程语言,可以说是新型语言,也是这两年来发展比较快的一种语言,而且不管是少儿还是成年人都可以学习这个新型编程语言,今天南京小码王python培训机构变为大家分享了一个python爬虫教程. ...

  5. python爬虫之路自学教程_python 爬虫学习之路

    2016-6-18 --今天实现了第一个用urllib2实现的爬虫程序. --过程中发现 req = urllib2.Request(url,headers = headers) 总是报错: 主要原因 ...

  6. Python爬虫系列:判断目标网页编码的几种方法

    在爬取网页内容时,了解目标网站所用编码是非常重要的,本文介绍几种常用的方法,并使用几个网站进行简单测试. 代码运行结果: 从不同国家的几个网站测试结果来看,utf8使用的较多(对于纯英文网站,用什么方 ...

  7. python爬虫概述及简单实践

    文章目录 一.先了解用户获取网络数据的方式 二.简单了解网页源代码的组成 1.web基本的编程语言 2.使用浏览器查看网页源代码 三.爬虫概述 1.认识爬虫 2.python爬虫 3.爬虫分类 4.爬 ...

  8. python爬虫自学1-爬取静态网页-2022-02-10

    断断续续学了一旦python的语法,然而一不用就又丢了.没办法就只能找点事来练练手,爬虫似乎比较简单(小白,勿喷),就试试呗. 一.首先说明一下: 时间:2022-02-10,时间关系到网站能否(爬虫 ...

  9. Python爬虫爬取动态JS网页股票信息

    前期准备工作 在本例中使用的是python爬虫需要的两个基础的库,一个是requests库,另一个是BeautifulSoup库.在这里假设已经安装了这两个库,如果没有可以通过pip安装.接下来简单说 ...

最新文章

  1. 独家 | 教你用不到30行的Keras代码编写第一个神经网络(附代码教程)
  2. ORACLE 添加删除列脚本
  3. String[]转化暴露“思维误区”
  4. 时间戳服务——信息安全(二)
  5. 全球及中国仪器润滑剂行业十四五竞争形势与投资战略咨询报告2021-2027年版
  6. python PyQt5 QSlider类(滑块)
  7. iOS之深入解析Runtime的objc_msgSend“慢速查找”底层原理
  8. OA项目实战(二) 开发准备
  9. 卡尔曼滤波器(Kalman Filter) 理解
  10. php ldap 模块,不重新编译为PHP增加LDAP模块的支持
  11. 艾媒:ofo活跃用户规模为摩拜近2倍 每10辆共享单车7辆小黄车
  12. 【转】jquery ui中文说明(使用方法)
  13. LREC'22 | 机器翻译中细粒度领域自适应的数据集和基准实验
  14. java8之StringJoiner。终于有像guava类库里的功能了
  15. 【开源】在线教育系统.net源码-PC端-手机端
  16. Android MDM 参考资料
  17. 企业招聘黑名单的9类人,你中枪了么?
  18. 电脑自动关机后又自动开机怎么办
  19. 2018-12-22-jekyll-theme-H2O
  20. Java实现——Dom4j读写XML文件

热门文章

  1. NS2 实现有 20 个节点的 WLAN
  2. 人脸检测通用评价标准
  3. AIEngine 下一代可编程的开源网络入侵检测系统,
  4. precision and recall
  5. 微信授权登录(H5为例)
  6. leo再谈 80后 程序员为什么找不到工作
  7. Vasicek短期利率模型
  8. 微信支付: 普通商户 VS 服务商
  9. 抖音账号矩阵系统源码/矩阵霸屏系统搭建部署/源码
  10. 第四次团队作业:社团申请App