Python 爬虫爬取豆瓣电影列表信息,爬虫的原理,应用领域介绍学习

本文主要是介绍Python 爬虫爬取豆瓣电影列表信息,爬虫的原理,应用领域介绍学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 什么是Python 爬虫

定义:爬虫是一种自动化程序,能够遍历互联网上的各个网页,并根据预设的规则和算法来解析和收集感兴趣的信息。这些信息可以包括网页的文本内容、图片、链接、视频等。

功能:爬虫可以自动化执行重复、繁琐的任务,如定时抓取和更新网站上的信息、自动化监测网站的性能和稳定性、自动化测试网站功能等,从而提高工作效率和质量。

2.爬取原理

  • 选择起始网页:爬虫首先选择一个起始网页作为起点。
  • 解析和访问链接:爬虫按照一定的规则逐步解析和访问起始网页中的其他链接。
  • 抓取网页内容:爬虫发送HTTP请求获取网页的HTML源码,并通过解析HTML提取网页中的有用信息。
  • 链接提取和去重:从抓取的网页中提取出新的链接,并进行去重处理,以避免重复抓取相同的页面。
  • 重复抓取:重复执行上述步骤,直到达到设定的停止条件,如抓取的网页数量达到阈值、达到抓取 深度限制或超过时间限制等。
  • 数据处理和存储:对抓取的数据进行处理、清洗和存储,以便后续使用。

3.爬虫的应用领域

  • 搜索引擎:搜索引擎使用爬虫来抓取和索引网页,提供全面的搜索结果。
  • 数据挖掘:通过抓取和分析网页中的数据,进行用户行为分析、市场调研、舆情监测等。
  • 自动化测试:爬虫可以用于自动化测试网站的功能和性能。
  • 产品开发和创新:通过爬虫发现新的市场机会和需求,为企业开发新产品和创新服务提供参考。
  • 学习和研究:研究人员和教育工作者可以利用爬虫从互联网上收集文献、数据集等资源,支持他们的研究工作和教学活动。

4.爬取豆瓣电影列表信息,分析统计电影排名,点赞,评分等信息

4.1 实例html源码

<div class="item"><div class="pic"><em class="">1</em><a href="https://movie.douban.com/subject/1292052/"><img alt="肖申克的救赎" class="" src="https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.jpg"width="100"/></a></div><div class="info"><div class="hd"><a class="" href="https://movie.douban.com/subject/1292052/"><span class="title">肖申克的救赎</span><span class="title"> / The Shawshank Redemption</span><span class="other"> / 月黑高飞(港)  /  刺激1995(台)</span></a><span class="playable">[可播放]</span></div><div class="bd"><p class="">导演: 弗兰克·德拉邦特 Frank Darabont   主演: 蒂姆·罗宾斯 Tim Robbins /...<br/>1994 / 美国 / 犯罪 剧情</p><div class="star"><span class="rating5-t"></span><span class="rating_num" property="v:average">9.7</span><span content="10.0" property="v:best"></span><span>3056599人评价</span></div><p class="quote"><span class="inq">希望让人自由。</span></p></div></div>
</div>

4.2 爬虫源码

import requests
from bs4 import BeautifulSoup
def fetch_douban_movie_top_list(start=0, count=25):"""爬取豆瓣电影Top 250列表:param start: 起始页码(每页25部电影):param count: 每页电影数量,豆瓣每页固定25部:return: 电影列表"""url = f'https://movie.douban.com/top250?start={start}&filter='headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}try:response = requests.get(url, headers=headers)response.raise_for_status()  # 如果请求失败,则抛出HTTPError异常soup = BeautifulSoup(response.text, 'html.parser')# print("++++++++++++++++++",soup)# 查找电影信息(这里以电影标题和评分为例)movie_list = []items = soup.find_all('div', class_='item')for item in items:director = item.find('p', class_='').get_text(strip=True, separator=' ').split('主演:')[0].split('导演:')[1].strip()desc = item.find('p', class_='').get_text(strip=True, separator=' ')evaluator = item.find('div', class_='star').find_all('span')[-1].text.strip()title = item.find('span', class_='title').get_text()img_url = item.find('img')['src']rating = item.find('span', class_='rating_num').get_text()theme = item.find('span', class_='inq').get_text()movie_list.append({'title': title,'theme': theme,'rating': rating,'director': director,'img_url': img_url,'evaluator': evaluator,'desc': desc})return movie_listexcept requests.RequestException as e:print(e)return []# 爬取前20部电影(由于豆瓣每页显示25部,这里只需要第一页即可)
movies = fetch_douban_movie_top_list(start=1, count=25)  # 注意:count参数实际上不起作用,因为豆瓣每页固定25部
for movie in movies[:25]:  # 只取前20部print(movie)# 注意:由于豆瓣的反爬机制,你可能需要添加额外的处理,如设置请求间隔、使用代理等

4.3 爬取结果存储

爬取结果可以存储在 关系型数据库或者非关系型数据库或者存储在Excel 中都行,如果需要这方面的知识请到博主主页留言。后续会补齐

4.4 数据分析

因为数据都结构化了,使用Pandas 或者使用大数据sql都可以进行分析

5.爬取结果展示

在这里插入图片描述

{'title': '霸王别姬', 'theme': '风华绝代。', 'rating': '9.6', 'director': '陈凯歌 Kaige Chen', 'img_url': 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2561716440.jpg', 'evaluator': '2257810人评价', 'desc': '导演: 陈凯歌 Kaige Chen\xa0\xa0\xa0主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha... 1993\xa0/\xa0中国大陆 中国香港\xa0/\xa0剧情 爱情 同性'}
{'title': '阿甘正传', 'theme': '一部美国近现代史。', 'rating': '9.5', 'director': '罗伯特·泽米吉斯 Robert Zemeckis', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2372307693.jpg', 'evaluator': '2276825人评价', 'desc': '导演: 罗伯特·泽米吉斯 Robert Zemeckis\xa0\xa0\xa0主演: 汤姆·汉克斯 Tom Hanks / ... 1994\xa0/\xa0美国\xa0/\xa0剧情 爱情'}
{'title': '泰坦尼克号', 'theme': '失去的才是永恒的。 ', 'rating': '9.5', 'director': '詹姆斯·卡梅隆 James Cameron', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p457760035.jpg', 'evaluator': '2316657人评价', 'desc': '导演: 詹姆斯·卡梅隆 James Cameron\xa0\xa0\xa0主演: 莱昂纳多·迪卡普里奥 Leonardo... 1997\xa0/\xa0美国 墨西哥\xa0/\xa0剧情 爱情 灾难'}
{'title': '千与千寻', 'theme': '最好的宫崎骏,最好的久石让。 ', 'rating': '9.4', 'director': '宫崎骏 Hayao Miyazaki', 'img_url': 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2557573348.jpg', 'evaluator': '2365436人评价', 'desc': '导演: 宫崎骏 Hayao Miyazaki\xa0\xa0\xa0主演: 柊瑠美 Rumi Hîragi / 入野自由 Miy... 2001\xa0/\xa0日本\xa0/\xa0剧情 动画 奇幻'}
{'title': '这个杀手不太冷', 'theme': '怪蜀黍和小萝莉不得不说的故事。', 'rating': '9.4', 'director': '吕克·贝松 Luc Besson', 'img_url': 'https://img2.doubanio.com/view/photo/s_ratio_poster/public/p511118051.jpg', 'evaluator': '2399566人评价', 'desc': '导演: 吕克·贝松 Luc Besson\xa0\xa0\xa0主演: 让·雷诺 Jean Reno / 娜塔莉·波特曼 ... 1994\xa0/\xa0法国 美国\xa0/\xa0剧情 动作 犯罪'}
{'title': '美丽人生', 'theme': '最美的谎言。', 'rating': '9.5', 'director': '罗伯托·贝尼尼 Roberto Benigni', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2578474613.jpg', 'evaluator': '1392326人评价', 'desc': '导演: 罗伯托·贝尼尼 Roberto Benigni\xa0\xa0\xa0主演: 罗伯托·贝尼尼 Roberto Beni... 1997\xa0/\xa0意大利\xa0/\xa0剧情 喜剧 爱情 战争'}
{'title': '星际穿越', 'theme': '爱是一种力量,让我们超越时空感知它的存在。', 'rating': '9.4', 'director': '克里斯托弗·诺兰 Christopher Nolan', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2614988097.jpg', 'evaluator': '1986161人评价', 'desc': '导演: 克里斯托弗·诺兰 Christopher Nolan\xa0\xa0\xa0主演: 马修·麦康纳 Matthew Mc... 2014\xa0/\xa0美国 英国 加拿大\xa0/\xa0剧情 科幻 冒险'}
{'title': '盗梦空间', 'theme': '诺兰给了我们一场无法盗取的梦。', 'rating': '9.4', 'director': '克里斯托弗·诺兰 Christopher Nolan', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p513344864.jpg', 'evaluator': '2178677人评价', 'desc': '导演: 克里斯托弗·诺兰 Christopher Nolan\xa0\xa0\xa0主演: 莱昂纳多·迪卡普里奥 Le... 2010\xa0/\xa0美国 英国\xa0/\xa0剧情 科幻 悬疑 冒险'}
{'title': '楚门的世界', 'theme': '如果再也不能见到你,祝你早安,午安,晚安。', 'rating': '9.4', 'director': '彼得·威尔 Peter Weir', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p479682972.jpg', 'evaluator': '1841994人评价', 'desc': '导演: 彼得·威尔 Peter Weir\xa0\xa0\xa0主演: 金·凯瑞 Jim Carrey / 劳拉·琳妮 Lau... 1998\xa0/\xa0美国\xa0/\xa0剧情 科幻'}
{'title': '辛德勒的名单', 'theme': '拯救一个人,就是拯救整个世界。', 'rating': '9.5', 'director': '史蒂文·斯皮尔伯格 Steven Spielberg', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p492406163.jpg', 'evaluator': '1177527人评价', 'desc': '导演: 史蒂文·斯皮尔伯格 Steven Spielberg\xa0\xa0\xa0主演: 连姆·尼森 Liam Neeson... 1993\xa0/\xa0美国\xa0/\xa0剧情 历史 战争'}
{'title': '忠犬八公的故事', 'theme': '永远都不能忘记你所爱的人。', 'rating': '9.4', 'director': '莱塞·霍尔斯道姆 Lasse Hallström', 'img_url': 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2587099240.jpg', 'evaluator': '1458512人评价', 'desc': '导演: 莱塞·霍尔斯道姆 Lasse Hallström\xa0\xa0\xa0主演: 理查·基尔 Richard Ger... 2009\xa0/\xa0美国 英国\xa0/\xa0剧情'}
{'title': '海上钢琴师', 'theme': '每个人都要走一条自己坚定了的路,就算是粉身碎骨。 ', 'rating': '9.3', 'director': '朱塞佩·托纳多雷 Giuseppe Tornatore', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p511146957.jpg', 'evaluator': '1759469人评价', 'desc': '导演: 朱塞佩·托纳多雷 Giuseppe Tornatore\xa0\xa0\xa0主演: 蒂姆·罗斯 Tim Roth / ... 1998\xa0/\xa0意大利\xa0/\xa0剧情 音乐'}
{'title': '三傻大闹宝莱坞', 'theme': '英俊版憨豆,高情商版谢耳朵。', 'rating': '9.2', 'director': '拉库马·希拉尼 Rajkumar Hirani', 'img_url': 'https://img2.doubanio.com/view/photo/s_ratio_poster/public/p579729551.jpg', 'evaluator': '1951253人评价', 'desc': '导演: 拉库马·希拉尼 Rajkumar Hirani\xa0\xa0\xa0主演: 阿米尔·汗 Aamir Khan / 卡... 2009\xa0/\xa0印度\xa0/\xa0剧情 喜剧 爱情 歌舞'}
{'title': '放牛班的春天', 'theme': '天籁一般的童声,是最接近上帝的存在。 ', 'rating': '9.3', 'director': '克里斯托夫·巴拉蒂 Christophe Barratier', 'img_url': 'https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2884280708.jpg', 'evaluator': '1382918人评价', 'desc': '导演: 克里斯托夫·巴拉蒂 Christophe Barratier\xa0\xa0\xa0主演: 让-巴蒂斯特·莫尼... 2004\xa0/\xa0法国 瑞士 德国\xa0/\xa0剧情 音乐'}
{'title': '机器人总动员', 'theme': '小瓦力,大人生。', 'rating': '9.3', 'director': '安德鲁·斯坦顿 Andrew Stanton', 'img_url': 'https://img2.doubanio.com/view/photo/s_ratio_poster/public/p1461851991.jpg', 'evaluator': '1388307人评价', 'desc': '导演: 安德鲁·斯坦顿 Andrew Stanton\xa0\xa0\xa0主演: 本·贝尔特 Ben Burtt / 艾丽... 2008\xa0/\xa0美国\xa0/\xa0科幻 动画 冒险'}
{'title': '疯狂动物城', 'theme': '迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。', 'rating': '9.2', 'director': '拜伦·霍华德 Byron Howard / 瑞奇·摩尔 Rich Moore', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2315672647.jpg', 'evaluator': '2073687人评价', 'desc': '导演: 拜伦·霍华德 Byron Howard / 瑞奇·摩尔 Rich Moore\xa0\xa0\xa0主演: 金妮弗·... 2016\xa0/\xa0美国\xa0/\xa0喜剧 动画 冒险'}
{'title': '无间道', 'theme': '香港电影史上永不过时的杰作。', 'rating': '9.3', 'director': '刘伟强 / 麦兆辉', 'img_url': 'https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2564556863.jpg', 'evaluator': '1452504人评价', 'desc': '导演: 刘伟强 / 麦兆辉\xa0\xa0\xa0主演: 刘德华 Andy Lau / 梁朝伟 Tony Leung Chiu W... 2002\xa0/\xa0中国香港\xa0/\xa0剧情 犯罪 惊悚'}
{'title': '控方证人', 'theme': '比利·怀德满分作品。', 'rating': '9.6', 'director': '比利·怀尔德 Billy Wilder', 'img_url': 'https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2911817201.jpg', 'evaluator': '628437人评价', 'desc': '导演: 比利·怀尔德 Billy Wilder\xa0\xa0\xa0主演: 泰隆·鲍华 Tyrone Power / 玛琳·... 1957\xa0/\xa0美国\xa0/\xa0剧情 犯罪 悬疑 惊悚'}
{'title': '大话西游之大圣娶亲', 'theme': '一生所爱。', 'rating': '9.2', 'director': '刘镇伟 Jeffrey Lau', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2455050536.jpg', 'evaluator': '1608310人评价', 'desc': '导演: 刘镇伟 Jeffrey Lau\xa0\xa0\xa0主演: 周星驰 Stephen Chow / 吴孟达 Man Tat Ng... 1995\xa0/\xa0中国香港 中国大陆\xa0/\xa0喜剧 爱情 奇幻 古装'}
{'title': '熔炉', 'theme': '我们一路奋战不是为了改变世界,而是为了不让世界改变我们。', 'rating': '9.3', 'director': '黄东赫 Dong-hyuk Hwang', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p1363250216.jpg', 'evaluator': '978933人评价', 'desc': '导演: 黄东赫 Dong-hyuk Hwang\xa0\xa0\xa0主演: 孔侑 Yoo Gong / 郑有美 Yu-mi Jung /... 2011\xa0/\xa0韩国\xa0/\xa0剧情'}
{'title': '教父', 'theme': '千万不要记恨你的对手,这样会让你失去理智。', 'rating': '9.3', 'director': '弗朗西斯·福特·科波拉 Francis Ford Coppola', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p616779645.jpg', 'evaluator': '1027336人评价', 'desc': '导演: 弗朗西斯·福特·科波拉 Francis Ford Coppola\xa0\xa0\xa0主演: 马龙·白兰度 M... 1972\xa0/\xa0美国\xa0/\xa0剧情 犯罪'}
{'title': '触不可及', 'theme': '满满温情的高雅喜剧。', 'rating': '9.3', 'director': '奥利维·那卡什 Olivier Nakache / 艾力克·托兰达 Eric Toledano\xa0\xa0\xa0主... 2011\xa0/\xa0法国\xa0/\xa0剧情 喜剧', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p1454261925.jpg', 'evaluator': '1194489人评价', 'desc': '导演: 奥利维·那卡什 Olivier Nakache / 艾力克·托兰达 Eric Toledano\xa0\xa0\xa0主... 2011\xa0/\xa0法国\xa0/\xa0剧情 喜剧'}
{'title': '当幸福来敲门', 'theme': '平民励志片。 ', 'rating': '9.2', 'director': '加布里尔·穆奇诺 Gabriele Muccino', 'img_url': 'https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2614359276.jpg', 'evaluator': '1593929人评价', 'desc': '导演: 加布里尔·穆奇诺 Gabriele Muccino\xa0\xa0\xa0主演: 威尔·史密斯 Will Smith ... 2006\xa0/\xa0美国\xa0/\xa0剧情 传记 家庭'}

这篇关于Python 爬虫爬取豆瓣电影列表信息,爬虫的原理,应用领域介绍学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112949

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和