简单的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新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
python获取目录下所有文件的方法
Jun 01 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
详解Python 切片语法
Jun 10 Python
关于python3中setup.py小概念解析
Aug 22 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 Python
聊聊python中的异常嵌套
Sep 01 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 Python
详解Python中import机制
Sep 11 Python
详解Python中Pyyaml模块的使用
Oct 08 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+oracle 分页类
2006/10/09 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
jQuery中:first选择器用法实例
2014/12/30 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
2018/11/19 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
python文件路径操作方法总结
2020/12/21 Python
Django url 路由匹配过程详解
2021/01/22 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
专科毕业生就业推荐信
2013/11/01 职场文书
电大本科自我鉴定
2014/02/05 职场文书
元旦活动感言
2014/03/08 职场文书
化学工程专业求职信
2014/08/10 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers