简单的抓取淘宝图片的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用fork来创建子进程注意事项
Jul 03 Python
python创建进程fork用法
Jun 04 Python
python实现决策树
Dec 21 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
python项目对接钉钉SDK的实现
Jul 15 Python
python创建学生管理系统
Nov 22 Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 Python
python2 对excel表格操作完整示例
Feb 23 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
详解python的变量缓存机制
Jan 24 Python
Python基础之元编程知识总结
May 23 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
JS 强制设为首页的代码
2009/01/31 Javascript
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
JavaScript代码实现txt文件的上传预览功能
2018/03/27 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python删除过期log文件操作实例解析
2018/01/31 Python
Python 删除连续出现的指定字符的实例
2018/06/29 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
如何在Django项目中引入静态文件
2019/07/26 Python
基于python的selenium两种文件上传操作实现详解
2019/09/19 Python
python的faker库用法
2019/11/28 Python
python同时遍历两个list用法说明
2020/05/02 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
亿企通软件测试面试题
2012/04/10 面试题
法制宣传标语集锦
2014/06/25 职场文书
商家认证委托书格式
2014/10/16 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
多表查询、事务、DCL
2021/04/05 MySQL
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫