简单的Python抓taobao图片爬虫

yipeiwu_com6年前Python爬虫

写了一个抓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

标签: redis

相关文章

python实现爬虫统计学校BBS男女比例之多线程爬虫(二)

接着第一篇继续学习。 一、数据分类 正确数据:id、性别、活动时间三者都有 放在这个文件里file1 = 'ruisi\\correct%s-%s.txt' % (startNum, e...

python实现爬虫下载美女图片

本次爬取的贴吧是百度的美女吧,给广大男同胞们一些激励 在爬取之前需要在浏览器先登录百度贴吧的帐号,各位也可以在代码中使用post提交或者加入cookie 爬行地址:http://tieb...

python3 requests库实现多图片爬取教程

python3 requests库实现多图片爬取教程

最近对爬虫比较感兴趣,所以就学了一下,看人家都在网上爬取那么多美女图片养眼,我也迫不及待的试了一下,不多说,切入正题。 其实爬取图片和你下载图片是一个样子的,都是操作链接,也就是url,...

Python 3实战爬虫之爬取京东图书的图片详解

Python 3实战爬虫之爬取京东图书的图片详解

前言 最近工作中遇到一个需求,需要将京东上图书的图片下载下来,假如我们想把京东商城图书类的图片类商品图片全部下载到本地,通过手工复制粘贴将是一项非常庞大的工程,此时,可以用Python网...

python爬取网站数据保存使用的方法

编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了。问题要从文字的编码讲起。原本的英文编码只有0~255,刚好是8位1个字节。为了表示各种不同的语言,自...