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并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用