简单的抓取淘宝图片的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开发实现简单的记事本
Nov 15 Python
python正则实现计算器功能
Dec 14 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
Python实现的端口扫描功能示例
Apr 08 Python
python提取具有某种特定字符串的行数据方法
Dec 11 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
python 猴子补丁(monkey patch)
Jun 26 Python
python打开使用的方法
Sep 30 Python
你可能不知道的Python 技巧小结
Jan 29 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
python logging模块的使用
Sep 07 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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
php实现的在线人员函数库
2008/04/09 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
解决jquery无法找到其他父级子集问题的方法
2016/05/10 Javascript
jQuery基于toggle实现click触发DIV的显示与隐藏问题分析
2016/06/12 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
JS中的模糊查询功能
2019/12/08 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
vue3.0实现插件封装
2020/12/14 Vue.js
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
函授毕业生的自我鉴定
2013/11/26 职场文书
校园招聘策划书
2014/01/09 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
关于美容院的活动方案
2014/08/14 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
客房领班岗位职责
2015/02/11 职场文书
税务会计岗位职责
2015/04/02 职场文书