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

相关文章

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调