简单的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中的装饰器用法详解
Jan 14 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
Python和C/C++交互的几种方法总结
May 11 Python
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
python机器学习实战之K均值聚类
Dec 20 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
Feb 26 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
Python pandas如何向excel添加数据
May 22 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
Dec 14 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/02 无线电
对Session和Cookie的区分与解释
2007/03/16 PHP
PHP解析RSS的方法
2015/03/05 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
this[] 指的是什么内容 讨论
2007/03/24 Javascript
Stop SQL Server
2007/06/21 Javascript
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
layui form表单提交后实现自动刷新
2019/10/25 Javascript
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
python常规方法实现数组的全排列
2015/03/17 Python
一道python走迷宫算法题
2018/01/22 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python Process多进程实现过程
2019/10/22 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
W Hamond官网:始于1979年的钻石专家
2020/07/20 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
社区反邪教工作方案
2014/06/16 职场文书
财产分割协议书范本
2014/11/03 职场文书
交通事故被告代理词
2015/05/23 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
element多个表单校验的实现
2021/05/27 Javascript
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏