简单的抓取淘宝图片的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实现八大排序算法
Aug 13 Python
Python常见异常分类与处理方法
Jun 04 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
Python实现Event回调机制的方法
Feb 13 Python
pandas DataFrame创建方法的方式
Aug 02 Python
python实现网站微信登录的示例代码
Sep 18 Python
Django 实现xadmin后台菜单改为中文
Nov 15 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
Python 实现集合Set的示例
Dec 21 Python
pycharm 实现调试窗口恢复
Feb 05 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中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
javascript中this的用法实践分析
2019/07/29 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
python3编写C/S网络程序实例教程
2014/08/25 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
python爬取m3u8连接的视频
2018/02/28 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
Css3圆角边框制作代码
2015/11/18 HTML / CSS
HTML5自定义属性的问题分析
2019/08/16 HTML / CSS
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
廉洁自律演讲稿
2014/05/22 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
社区母亲节活动总结
2015/02/10 职场文书
邮政营业员岗位职责
2015/04/14 职场文书