简单的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中用format函数格式化字符串的用法
Apr 08 Python
python生成词云的实现方法(推荐)
Jun 13 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
python查询mysql,返回json的实例
Mar 26 Python
Python FTP两个文件夹间的同步实例代码
May 25 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
Django实现celery定时任务过程解析
Apr 21 Python
对python中arange()和linspace()的区别说明
May 03 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
变长双向rnn的正确使用姿势教学
May 31 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实现两个数组相加的方法
2015/02/17 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
node.js中的fs.createReadStream方法使用说明
2014/12/17 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
原生js实现验证码功能
2017/03/16 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
详解Webpack loader 之 file-loader
2018/11/07 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
一则python3的简单爬虫代码
2014/05/26 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python实现求两个csv文件交集的方法
2017/09/06 Python
python实现感知器
2017/12/19 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
python3.4中清屏的处理方法
2020/07/06 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
教师推荐信范文
2013/11/24 职场文书
电话销售经理岗位职责
2013/12/07 职场文书
幼儿园实习自我鉴定
2013/12/15 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
2015年组织部工作总结
2015/04/03 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
月考总结与反思
2015/10/22 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
vue特效之翻牌动画
2022/04/20 Vue.js