简单的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 相关文章推荐
Pyramid添加Middleware的方法实例
Nov 27 Python
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Python中类的定义、继承及使用对象实例详解
Apr 30 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
Python高级property属性用法实例分析
Nov 19 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
Python 列表反转显示的四种方法
Nov 16 Python
python实现三次密码验证的示例
Apr 29 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会员权限控制实现原理分析
2011/05/29 PHP
php命令行用法入门实例教程
2014/10/27 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
浅析js封装和作用域
2013/07/09 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
微信JS接口大全
2016/08/25 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
2017/08/18 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
python算法学习之基数排序实例
2013/12/18 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
详解python3中zipfile模块用法
2018/06/18 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python3 集合set入门基础
2020/02/10 Python
Python实现企业微信机器人每天定时发消息实例
2020/02/25 Python
python实现快递价格查询系统
2020/03/03 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
Jar包的作用是什么
2014/03/30 面试题
英语系毕业生自荐信
2013/10/31 职场文书
写给女生的道歉信
2014/01/08 职场文书
集体婚礼证婚词
2014/01/13 职场文书
大学校运会广播稿
2014/02/03 职场文书
导师对论文的学术评语
2015/01/04 职场文书
考勤制度通知
2015/04/25 职场文书
创业计划书之花店
2019/09/20 职场文书
Python日志模块logging用法
2022/06/05 Python