简单的抓取淘宝图片的Python爬虫


Posted in Python onDecember 25, 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基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
常用python编程模板汇总
Feb 12 Python
详解Python命令行解析工具Argparse
Apr 20 Python
深入学习Python中的上下文管理器与else块
Aug 27 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
caffe binaryproto 与 npy相互转换的实例讲解
Jul 09 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
Python作用域与名字空间原理详解
Mar 21 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
简单使用Python自动生成文章
Dec 25 #Python
Python 抓取动态网页内容方案详解
Dec 25 #Python
利用Psyco提升Python运行速度
Dec 24 #Python
Python解决鸡兔同笼问题的方法
Dec 20 #Python
Python列表计数及插入实例
Dec 17 #Python
Python二维码生成库qrcode安装和使用示例
Dec 16 #Python
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 #Python
You might like
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
Yii快速入门经典教程
2015/12/28 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
2016/03/07 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
使用async await 封装 axios的方法
2018/07/09 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python中reload(module)的用法示例详解
2017/09/15 Python
深入浅析Python中的yield关键字
2018/01/24 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
Python使用gRPC传输协议教程
2018/10/16 Python
Python缓存技术实现过程详解
2019/09/25 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
Pytorch数据读取之Dataset和DataLoader知识总结
2021/05/23 Python