源码:
from urllib import request
import re
class MovieTop250(object):
def __init__(self):
self.start = 0
self.headers = {'User-Agent': 'Mozilla/5.0(Windows NT 6.1; WOW64)'}
self.movie_list = []
self.file_top250 = 'E:\\TOP250.txt'
def get_html_page(self):
try:
url = 'https://movie.douban.com/top250?start=' + str(self.start)
req = request.Request(url, headers=self.headers)
res = request.urlopen(req)
html_page = res.read().decode('UTF-8')
page_num = (self.start + 25) // 25
print('正在爬取第' + str(page_num) + '页的数据...')
self.start += 25
return html_page
except Exception as e:
print('get_html_page函数发生' + e + '异常')
def get_movie_info(self):
pattern = re.compile(u'(.*?).*?'
+ u'(.*?).*?'
+ u'.*?导演:(.*?) .*?'
+ u'
(.*?) / (.*?) / (.*?).*?'
+ u'(.*?).*?'
+ u'(.*?)人评价.*?'
+ u'(.*?)', re.S)
while self.start <= 225:
html_page = self.get_html_page()
movies = re.findall(pattern, html_page)
for movie in movies:
self.movie_list.append([movie[0].lstrip().rstrip(),
movie[1].lstrip().rstrip(),
movie[2].lstrip().rstrip(),
movie[3].lstrip().rstrip() + '年',
movie[4].lstrip().rstrip().replace(' ', '/'),
movie[5].lstrip().rstrip().replace(' ', '/'),
movie[6].lstrip().rstrip() + '分',
movie[7].lstrip().rstrip() + '人评论',
movie[8].lstrip().rstrip()])
def write_top250(self):
print('正在将数据写入TOP250.txt...')
file_top250 = open(self.file_top250, 'w', encoding='UTF-8')
try:
for movie in self.movie_list:
file_top250.write('电影排名:' + movie[0] + '\n\n')
file_top250.write('电影名称:' + movie[1] + '\n\n')
file_top250.write('导演姓名:' + movie[2] + '\n\n')
file_top250.write('电影年份:' + movie[3] + '\n\n')
file_top250.write('制作地区:' + movie[4] + '\n\n')
file_top250.write('电影类型:' + movie[5] + '\n\n')
file_top250.write('电影评分:' + movie[6] + '\n\n')
file_top250.write('参评人数:' + movie[7] + '\n\n')
file_top250.write('简短影评:' + movie[8] + '\n\n\n\n')
except Exception as e:
print('write_top250函数发生' + e + '异常')
finally:
file_top250.close()
def entrance(self):
print('开始爬取数据...')
self.get_movie_info()
self.write_top250()
print('数据爬取结束!!!')
if __name__ == '__main__':
movie_top250 = MovieTop250()
movie_top250.entrance()
部分结果:
电影排名:1
电影名称:肖申克的救赎
导演姓名:弗兰克·德拉邦特 Frank Darabont
电影年份:1994年
制作地区:美国
电影类型:犯罪/剧情
电影评分:9.6分
参评人数:906375人评论
简短影评:希望让人自由。
Over