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进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、