简单的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进阶教程之词典、字典、dict
Aug 29 Python
Python中type的构造函数参数含义说明
Jun 21 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
python的多重继承的理解
Aug 06 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
使用python的pyplot绘制函数实例
Feb 13 Python
Python requests上传文件实现步骤
Sep 15 Python
Django Auth用户认证组件实现代码
Oct 13 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新手上路(九)
2006/10/09 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
jQuery contains过滤器实现精确匹配使用方法
2013/04/12 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
python显示生日是星期几的方法
2015/05/27 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
tornado 多进程模式解析
2018/01/15 Python
超简单的Python HTTP服务
2019/07/22 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
女生节标语
2014/06/26 职场文书
大学活动总结模板
2014/07/10 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
2015年仓库工作总结
2015/04/09 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL