简单的Python抓taobao图片爬虫


Posted in Python onOctober 26, 2014

写了一个抓taobao图片的爬虫,全是用if,for,while写的,比较简陋,入门作品。

从网页http://mm.taobao.com/json/request_top_list.htm?type=0&page=中提取taobao模特的照片。

# -*- coding: cp936 -*-

import urllib2

import urllib

mmurl="http://mm.taobao.com/json/request_top_list.htm?type=0&page="

i=0#第二页有个人的页面没图片,会出现IO错误

while i<15:

        url=mmurl+str(i)

        #print url #打印出列表的url

        up=urllib2.urlopen(url)#打开页面,存入句柄中

        cont=up.read()

        #print len(cont)#页面的长度

        ahref='<a href="http'#筛选页面内网页链接的关键字

        target="target"

        pa=cont.find(ahref)#找出网页链接的头部位置

        pt=cont.find(target,pa)#找出网页链接的尾部位置

        for a in range(0,20):#如才能不把20硬编码进去?如何找到文件结尾?

                urlx=cont[pa+len(ahref)-4:pt-2]#从头部到尾部,将网页链接存入变量

                if len(urlx) < 60:#如果网页链接长度适合【len()!!!!】

                    urla=urlx     #那么就准备将其打印出来

                    print urla    #这是想要的model个人URL

                    #########以下开始对model个人的URL进行操作#########

                    mup=urllib2.urlopen(urla)#打开model个人的页面,存入句柄中

                    mcont=mup.read()#对model页面的句柄进行读出操作,存入mcont字符串

                    imgh="<img style=" #筛选页面内【图片】链接的关键字

                    imgt=".jpg"

                    iph=mcont.find(imgh)#找出【图片】链接的头部位置

                    ipt=mcont.find(imgt,iph)#找出【图片】链接的尾部位置

                    for b in range(0,10):#又是硬编码····

                            mpic=mcont[iph:ipt+len(imgt)]#原始图片链接,链接字符的噪声太大

                            iph1=mpic.find("http")#对上面的链接再过滤一次

                            ipt1=mpic.find(imgt)  #同上

                            picx=mpic[iph1:ipt1+len(imgt)]

                            if len(picx)<150:#仍有一些URL是“http:ss.png><dfsdf>.jpg”(设为100竟然会误伤)

                                    pica=picx #【是len(picx)<100而不是picx!!】不然会不显示

                                    print pica

                                    ############################

                                    ###########开始下载pica这个图片

                                    urllib.urlretrieve(pica,"pic\\tb"+str(i)+"x"+str(a)+"x"+str(b)+".jpg")                                   

                                    ###########   pica图片下载完毕.(加上各循环体的数字,以免名字重复)

                                    ############################

                            iph=mcont.find(imgh,iph+len(imgh))#开始下一个循环

                            ipt=mcont.find(imgt,iph)

                    ############model个人URL内的【图片链接】提取完毕##########

                pa=cont.find(ahref,pa+len(ahref))#将原来的头部位作为起始点,继续向后找下一个头部

                pt=cont.find(target,pa)#继续找下一个尾部

        i+=1
Python 相关文章推荐
python 控制语句
Nov 03 Python
Python中__init__和__new__的区别详解
Jul 09 Python
python进阶教程之循环对象
Aug 30 Python
跟老齐学Python之一个免费的实验室
Sep 14 Python
详细介绍Python的鸭子类型
Sep 12 Python
解决Tensorflow安装成功,但在导入时报错的问题
Jun 13 Python
python实现简单flappy bird
Dec 24 Python
python调用摄像头拍摄数据集
Jun 01 Python
Python中函数参数匹配模型详解
Jun 09 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
Python的PIL库中getpixel方法的使用
Apr 09 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Python性能优化的20条建议
Oct 25 #Python
跟老齐学Python之网站的结构
Oct 24 #Python
跟老齐学Python之折腾一下目录
Oct 24 #Python
跟老齐学Python之私有函数和专有方法
Oct 24 #Python
跟老齐学Python之模块的加载
Oct 24 #Python
python和shell实现的校验IP地址合法性脚本分享
Oct 23 #Python
探寻python多线程ctrl+c退出问题解决方案
Oct 23 #Python
You might like
PHP+shell实现多线程的方法
2015/07/01 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
PHP Web表单生成器案例分析
2020/06/02 PHP
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
python 合并文件的具体实例
2013/08/08 Python
python开发之thread线程基础实例入门
2015/11/11 Python
Python中装饰器高级用法详解
2017/12/25 Python
python实现指定文件夹下的指定文件移动到指定位置
2018/09/17 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
《和我们一样享受春天》教学反思
2014/02/07 职场文书
开业庆典主持词
2014/03/21 职场文书
2014春晚主持词
2014/03/25 职场文书
单位委托书
2014/10/15 职场文书
护士工作心得体会
2016/01/25 职场文书
2016银行求职自荐信
2016/01/28 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
解决 redis 无法远程连接
2022/05/15 Redis