Python爬虫初学(2)豆瓣电影top250评论数

#作者:Nonikka
#版本:0.3
#2014年3月28日
import os,urllib.request,re

try:
	douban250 = urllib.request.urlopen('http://movie.douban.com/top250').read()
except:
	print("link Error")
douban250 = douban250.decode('utf-8')
re250 = re.compile(r'<div class="info">\s+<div class="hd">\s+<a href="(.+?)" class="">',re.DOTALL)
movies_page = re250.findall(douban250)
r_number = re.compile(r'<a href.+?(\d{4,7})</span>人评价',re.DOTALL)                    #正则评论数
r_name = re.compile(r'<span property="v:itemreviewed">(.+?)</span>',re.DOTALL)          #正则名字
page_open = []

for i in movies_page:
	page_open.append(urllib.request.urlopen(i).read().decode('utf-8'))

movies_name = []
pinglunshu = []
for numbers in page_open:
	print(r_name.findall(numbers) + r_number.findall(numbers))
	movies_name.append(r_name.findall(numbers))                                         #电影名做列表
	pinglunshu.append(r_number.findall(numbers))                                        #评论数做列表
	
dic = {}
intpinglunshu = []
for i in pinglunshu:
	intpinglunshu.append(int(pinglunshu.pop(0)[0]))                                      #str转int

intmovies_name = []
for i in movies_name:
	intmovies_name.append(movies_name.pop(0)[0])
	
for i_ in intmovies_name:
	dic[i_] = intpinglunshu.pop(0)

dic = sorted(dic.items(),key=lambda d:d[1],reverse = True)                              #字典按value排序

out = open('data.txt','w')

for key in dic :                                                                        #输出文本
	out.write(str(key) + '\n')   
											#只能输出10个,此处有bug
out.close()

os.system("pause")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值