本文共 1498 字,大约阅读时间需要 4 分钟。
本文将介绍如何通过编程实现豆瓣高评分电影的爬取,涵盖从准备到完成爬虫的全过程。
通过分析网页可得,URL格式如下:
https://movie.douban.com/j/new_search_subjects?sort=S&range=0,10&tags=&start={(page_index-1)*20}
其中,page_index
表示页码。
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"}
代码实现如下:
import reimport requestsdef get_douban_high_ratings(page_num): base_url = "https://movie.douban.com/j/new_search_subjects?sort=S&range=0,10&tags=" start = (page_num - 1) * 20 url = f"{base_url}&start={start}" response = requests.get(url, headers=headers).text response = re.sub(r"\\", "", response) # 提取数据 pat_title = r'"title":"(.*?)",' pat_rate = r'"rate":"(.*?)",' pat_url = r'"url":"(.*?)",' data_title = re.compile(pat_title).findall(response) data_rate = re.compile(pat_rate).findall(response) data_url = re.compile(pat_url).findall(response) return data_title, data_rate, data_url# 输入要爬取的总记录数page_num = int(input("请输入您想爬取的总记录数(每20条为一个页面):"))titles, rates, urls = get_douban_high_ratings(page_num)for title, rate, url in zip(titles, rates, urls): print(f"{title}\t\t{rate}")
运行上述代码后,您可以在控制台看到如下结果:
电影标题 评分--------------------------------------------------------电影名称1 9.0电影名称2 8.9...
通过上述方法,我们成功实现了对豆瓣高评分电影的爬取。该方法基于requests和re模块,能够高效地获取所需数据。
转载地址:http://pqzx.baihongyu.com/