简单的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字典的常用操作方法小结
May 16 Python
python实现list由于numpy array的转换
Apr 04 Python
使用python存储网页上的图片实例
May 22 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
python的常用模块之collections模块详解
Dec 06 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
Python实现FLV视频拼接功能
Jan 21 Python
python脚本实现mp4中的音频提取并保存在原目录
Feb 27 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 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基础知识介绍
2013/09/17 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
axios学习教程全攻略
2017/03/26 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
pandas带有重复索引操作方法
2018/06/08 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
代理商会议邀请函
2014/01/27 职场文书
潘婷洗发水广告词
2014/03/14 职场文书
借款协议书范本
2014/04/22 职场文书
青春奉献演讲稿
2014/05/08 职场文书
会议主持词结束语
2015/07/03 职场文书
医德医风学习心得体会
2016/01/25 职场文书
关于保护环境的建议书
2019/06/24 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python
python套接字socket通信
2022/04/01 Python
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers