简单的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中用altzone()方法处理时区的教程
May 22 Python
python @property的用法及含义全面解析
Feb 01 Python
python实现决策树分类
Aug 30 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
python Canny边缘检测算法的实现
Apr 24 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
python能开发游戏吗
Jun 11 Python
python搜索算法原理及实例讲解
Nov 18 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
Python实现粒子群算法的示例
Feb 14 Python
python函数指定默认值的实例讲解
Mar 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读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
img的onload的另类用法
2008/01/10 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
jquery统计复选框选中示例
2013/11/05 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
Pandas 同元素多列去重的实例
2018/07/03 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Python守护进程实现过程详解
2020/02/10 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
如何写一个自定义标签
2012/12/28 面试题
实习医生自我评价
2013/09/22 职场文书
土木工程专业个人求职信
2013/12/05 职场文书
文员求职信
2014/07/15 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
加强作风建设工作总结
2014/10/23 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
个人年终总结结尾
2015/03/06 职场文书
opencv-python图像配准(匹配和叠加)的实现
2021/06/23 Python
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers