Python_kad爬蟲學(xué)習(xí)筆記(二)

本想著一步到位懦冰,把bug都解決后再發(fā)布浪慌,無奈碰到個(gè)問題困擾了好幾天趁桃,就先發(fā)布下目前的版本吧仑最,做下階段備份扔役,代碼如下:

#-*- coding: utf-8 -*-

import urllib2

import re

import time

f=urllib2.urlopen('http://www.360kad.com/dymhh/allclass.shtml').read()

n1=f.find('<dt><span><a href="http://www.360kad.com/Category_47/Index.aspx" target="_blank">')

n2=f.find('4057/Index.aspx" target="_blank">')

n3=f[n1:(n2+90)]

n4=re.sub('<!--[\s\S]*?-->','',n3)

n5=re.findall('<dd>[\s\S]*?</dd>',n4)

#將鏈接和tag名做成列表模式

w1=[]#鏈接

e1=re.findall('http://www.360kad.com/Category_\d{1,}/Index.aspx',''.join(n5))

for i1 in e1:

w1.append(i1)

w2=[]#tag名

e2=re.findall('blank">\S{1,}?</a>',''.join(n5))

e3=(''.join(e2)).replace('blank">','').replace('</a>','\n')

for i2 in e3.split('\n'):

w2.append(i2)

w=[]#鏈接+tag名

for i in range(len(w2)-1):

w.append(w1[i])

w.append(w2[i])

n6=re.findall('_\d{1,}',''.join(n5))

kad_tag=[]

for n in n6:

kad_tag.append(n)

#每個(gè)

class Page_list:

def __init__(self):

self.url1='http://www.360kad.com/Category'

def request_open(self,n1,n2):

self.url2='/Index_'+str(n2+1)+'.aspx'

self.page1=urllib2.urlopen(self.url1+kad_tag[n1]+self.url2).read()

#print n2+1

return self.page1

#頁碼數(shù)

class Next_page:

def __init__(self):

self.url1='http://www.360kad.com/Category'

def np(self,n1):

self.page1=urllib2.urlopen(self.url1+kad_tag[n1]+'/Index.aspx').read()

self.url2=re.findall('_\d{1,}.aspx">尾頁</a>',self.page1)

#print self.url2

if self.url2:

self.num2=self.url2[-1][1:-17]

#print self.num2

return int(self.num2)

else:

return 1

page_list=Page_list()

page_text=[]

#具體每個(gè)頁面的產(chǎn)品名、規(guī)格词身、價(jià)格厅目、鏈接

class Page_info:

def __info__(self):

pass

def m(self,n1,n2):#產(chǎn)品名

self.page_name2=[]

self.page_name1=re.findall('title=".*?" rel="nofollow" class',page_list.request_open(n1,n2))

for x in range(len(self.page_name1)):

self.page_name2.append(self.page_name1[x][7:-22])

self.page_num2=[]#規(guī)格

self.page_num1=re.findall('"num">.*?<',page_list.request_open(n1,n2))

for i in range(len(self.page_num1)):

self.page_num2.append(self.page_num1[i][6:-2])

self.page_price2=[]#價(jià)格

self.page_price1=re.findall('"price">\S{1,}</span>|priceR">\S{1,}?<|<p class="vip_pric"[\s\S]{1,}</p>',page_list.request_open(n1,n2))

for s in self.page_price1:

self.p2=re.findall('style',s)

if self.p2:

self.page_price2.append('沒有價(jià)格')

else:

self.p3=re.findall('\d{1,}\.\d{1,}',s)

self.page_price2.append(self.p3[-1])

self.page_url2=[]#鏈接

self.page_url1=re.findall('<a class="name".*?title=',page_list.request_open(n1,n2))

self.u2=re.findall('/product/\d{1,}.shtml',''.join(self.page_url1))

for f in self.u2:

self.page_url2.append('http://www.360kad.com'+f)

for i in range(len(self.page_name2)):

self.dic=[]

self.dic.append(self.page_name2[i])

self.dic.append(self.page_num2[i])

self.dic.append(self.page_price2[i])

self.dic.append(self.page_url2[i])

page_text.append(self.dic)#這里有疑問

page_info=Page_info()

next_page=Next_page()

for x in range(len(w2)-375):#為減少工作量,就簡(jiǎn)單提取3個(gè)標(biāo)簽驗(yàn)證程序

print'正在抓取tag%s中的內(nèi)容'%(w2[x])

starttime2=time.time()

for i in range(next_page.np(x)):

print'開始抓取第%d頁法严,抓取進(jìn)度:'%(i+1)

starttim2=time.time()

page_info.m(x,i)#page_text.append(self.dic)會(huì)疊加

endtime2=time.time()

print'抓取第%d頁完畢损敷,用時(shí)%.2fs'%(i+1,endtime2-starttime2)

time.sleep(4)

'''w4=str(w2[x]).decode('utf-8')

t=file('%s.txt'%w4,'w')

#print type(page_text)

page_text0=''.join('%s' %id for id in page_text)

#page_text1=page_text0.decode('utf-8')

t.write(page_text0)

t.close()'''#tag保存的內(nèi)容會(huì)疊加,沒有搞清楚怎么解決

endtime2=time.time()

print '抓取%s標(biāo)簽完畢,用時(shí)%.2fs'%(w2[x],endtime2-starttime2)

f=file('KAD_ALL.html','w')

f.write('<!DOCTYPE html>\n<html>\n<head>\n')

f.write('<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n')

f.write('</head>\n\n<body>\n')

s=1

for i in page_text:

f.write('<p>'+str(s)+'. '+'<a href=\"'+i[3]+'\">'+i[0]+'</a>'+'深啤,規(guī)格:'+i[1]+'價(jià)格:'+i[2]+'\n')

s=s+1

f.write('</body>')

f.close()

print'抓取完成拗馒,請(qǐng)查看'

運(yùn)行結(jié)果如下:

因?yàn)楣こ塘柯源螅韵敕謙ag保存溯街,避免后期出問題诱桂,之前的工作還得重新來。結(jié)果出現(xiàn)append內(nèi)容疊加的情況呈昔,就是說第二個(gè)tag保存的內(nèi)容內(nèi)也包含了之前的第一個(gè)tag的內(nèi)容挥等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市堤尾,隨后出現(xiàn)的幾起案子肝劲,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辞槐,死亡現(xiàn)場(chǎng)離奇詭異掷漱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)榄檬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門卜范,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鹿榜,你說我怎么就攤上這事海雪。” “怎么了犬缨?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵喳魏,是天一觀的道長(zhǎng)棉浸。 經(jīng)常有香客問我怀薛,道長(zhǎng),這世上最難降的妖魔是什么迷郑? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任枝恋,我火速辦了婚禮,結(jié)果婚禮上嗡害,老公的妹妹穿的比我還像新娘焚碌。我一直安慰自己,他們只是感情好霸妹,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布十电。 她就那樣靜靜地躺著,像睡著了一般叹螟。 火紅的嫁衣襯著肌膚如雪鹃骂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天罢绽,我揣著相機(jī)與錄音畏线,去河邊找鬼。 笑死良价,一個(gè)胖子當(dāng)著我的面吹牛寝殴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播明垢,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蚣常,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了痊银?” 一聲冷哼從身側(cè)響起抵蚊,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后泌射,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粘姜,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年熔酷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孤紧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拒秘,死狀恐怖号显,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躺酒,我是刑警寧澤押蚤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站羹应,受9級(jí)特大地震影響揽碘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜园匹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一雳刺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧裸违,春花似錦掖桦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至怔昨,卻和暖如春雀久,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背朱监。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工岸啡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赫编。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓巡蘸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親擂送。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悦荒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容