简单的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下如何让web元素的生成更简单的分析
Jul 17 Python
使用python在校内发人人网状态(人人网看状态)
Feb 19 Python
python实现跨文件全局变量的方法
Jul 07 Python
学习python 之编写简单乘法运算题
Feb 27 Python
点球小游戏python脚本
May 22 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
pytorch中使用cuda扩展的实现示例
Feb 12 Python
python实现对变位词的判断方法
Apr 05 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
Sep 21 Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 24 Python
Python代码风格与编程习惯重要吗?
Jun 03 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
一贴学会PHP 新手入门教程
2009/08/03 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
javascript div 弹出可拖动窗口
2009/02/26 Javascript
Firefox div高度自适应
2009/04/28 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
九年级数学教学反思
2014/02/02 职场文书
元旦联欢会感言
2014/03/04 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
品酒会策划方案
2014/05/26 职场文书
感恩节寄语2015
2015/03/24 职场文书
导游词之安徽九华山
2019/09/18 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL