python爬取猫眼电影top100榜单

项目目标:使用 requests 库和正则表达式爬取猫眼电影 Top100 榜单,并保存为文件

目标站点分析

  1. 电影分别在10个页面中呈现,第一个页面 url 为 https://www.maoyan.com ,第二个页面为 ,第三个为 ,其余页面 url 以此类推。
  2. 每个电影的信息都在
    标签中,包括电影名称、图片地址、主演、上映时间以及评分
python爬取猫眼电影top100榜单_第1张图片
电影《霸王别姬》详细代码

编写正则获取信息

该页面代码比较简单,代码如下:

def parse_one_page(html):
'''正则解析网页,获取数据'''
    pattern = re.compile('
.*?board-index.*?>(\d+).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?)

.*?releasetime">(.*?)

.*?integer">(.*?).*?fraction">(.*?).*?
', re.S) items = re.findall(pattern, html) # 整理输出结果,按字典形式输出 for item in items: yield { 'index': item[0], 'image': item[1], 'title': item[2], 'actor': item[3].strip()[3:], 'time': item[4][4:], 'score': item[5] + item[6] }

保存爬取信息

以 json 格式保存爬取信息,代码如下:

def write_to_file(content):
'''將结果保存到文件中, 并解决中文编码问题'''

    with open('result.txt', 'a', encoding='utf-8') as f:
        f.write(json.dumps(content, ensure_ascii=False) + '\n')

输出结果

部分输出结果,index 为排名,actor 为主演, score 为评分,title 为电影名称,time 为上映时间,image 为图片url地址

{"actor": "张国荣,张丰毅,巩俐", "score": "9.6", "index": "1", "title": "霸王别姬", "image": "http://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c", "time": ":1993-01-01(中国香港)"}
{"actor": "蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿", "score": "9.5", "index": "2", "title": "肖申克的救赎", "image": "http://p0.meituan.net/movie/__40191813__4767047.jpg@160w_220h_1e_1c", "time": ":1994-10-14(美国)"}
{"actor": "格利高利·派克,奥黛丽·赫本,埃迪·艾伯特", "score": "9.1", "index": "3", "title": "罗马假日", "image": "http://p0.meituan.net/movie/23/6009725.jpg@160w_220h_1e_1c", "time": ":1953-09-02(美国)"}
{"actor": "让·雷诺,加里·奥德曼,娜塔莉·波特曼", "score": "9.5", "index": "4", "title": "这个杀手不太冷", "image": "http://p0.meituan.net/movie/fc9d78dd2ce84d20e53b6d1ae2eea4fb1515304.jpg@160w_220h_1e_1c", "time": ":1994-09-14(法国)"}
{"actor": "莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩", "score": "9.5", "index": "5", "title": "泰坦尼克号", "image": "http://p0.meituan.net/movie/11/324629.jpg@160w_220h_1e_1c", "time": ":1998-04-03"}
{"actor": "马龙·白兰度,阿尔·帕西诺,詹姆斯·凯恩", "score": "9.3", "index": "6", "title": "教父", "image": "http://p0.meituan.net/movie/92/8212889.jpg@160w_220h_1e_1c", "time": ":1972-03-24(美国)"}
{"actor": "日高法子,坂本千夏,糸井重里", "score": "9.2", "index": "7", "title": "龙猫", "image": "http://p0.meituan.net/movie/99/678407.jpg@160w_220h_1e_1c", "time": ":1988-04-16(日本)"}
{"actor": "周星驰,巩俐,郑佩佩", "score": "9.2", "index": "8", "title": "唐伯虎点秋香", "image": "http://p0.meituan.net/movie/62/109878.jpg@160w_220h_1e_1c", "time": ":1993-07-01(中国香港)"}
{"actor": "柊瑠美,入野自由,夏木真理", "score": "9.3", "index": "9", "title": "千与千寻", "image": "http://p0.meituan.net/movie/9bf7d7b81001a9cf8adbac5a7cf7d766132425.jpg@160w_220h_1e_1c", "time": ":2001-07-20(日本)"}
{"actor": "费雯·丽,罗伯特·泰勒,露塞尔·沃特森", "score": "9.2", "index": "10", "title": "魂断蓝桥", "image": "http://p0.meituan.net/movie/12/8506449.jpg@160w_220h_1e_1c", "time": ":1940-05-17(美国)"}

完整代码和输出文件请访问:https://github.com/xieys 欢迎Follow和star

你可能感兴趣的:(python爬取猫眼电影top100榜单)