寫了一個抓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=' 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=" 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>.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