学习阶段三(update:2014-3-25):实现功能:抓取所有tag的第一页电影的链接,名字,别名,评分,评价人数。保存到本地txt代码如下:
# -*- coding: cp936 -*-
import urllib2
import re
import time
starttime=time.time()
raw_text=urllib2.urlopen('http://movie.douban.com/tag/?view=type').read()
text0=re.findall('"./.*?"',raw_text)#初步抓取tag,findall输出为list
text1=''.join(text0)#list转str,方便replace
text2=text1.replace('"./','').replace('"','\n')#tag提取完成
text3=[]#新建空list,方便后面append
for text4 in text2.split('\n'):#for in对象需为list,用split将str转为list
tagurl='http://movie.douban.com/tag/%s'%text4#讲URL前缀同tag拼接,方便后期多tag抓取
text3.append(tagurl)#循环赋值到空列表
del text3[-1]#最后一行为空tag,不知道生成原因。手动删除。
text8=[]#新建空list,存储for执行结果
for text5 in text3:
raw_tagurl=urllib2.urlopen(text5).read()#打开所有tag页面
tagurl_text=re.findall('''http://movie.douban.com/subject/\d{1,}/" class="">
.*?
/ .*?|
.*?''',raw_tagurl)#初步提取电影信息
text6=''.join(tagurl_text)
text7=text6.replace('''
''','\t').replace('''" class="">
''','\t').replace('','\n').replace('''
/ ''','\t/').replace('\n
text8.append(text7)#将for结果赋值到空list
text9=''.join(text8)#转str write要求
e=file('douban_movie7.txt','w')
e.write(text9)
endtime=time.time()
print '用时%ss'%(starttime-endtime)
e.close()
运行结果:
用时-75.5190000534s学习总结:1、初步接触time,从crossin论坛中
的豆瓣代码中看到就拿来用了。2、代码还是很初级,只能抓取所有标签的第一页,用时75s,耗时应该有点长。还需实现的功能:抓取每个标签下的多页电影信息,去重,排序。