高端建站网站,现在pc网站的标准一般是做多大,ps网页设计教程简单,多媒体网站开发实验报告Day41#xff1a;Python爬取猫眼电影网站的电影信息
1. 项目背景
在本项目中#xff0c;我们将使用 Python 爬虫技术从猫眼电影网站抓取电影信息。猫眼电影是一个知名的电影信息平台#xff0c;提供了丰富的电影相关数据。通过这个练习#xff0c;您将深入学习如何抓取动…Day41Python爬取猫眼电影网站的电影信息
1. 项目背景
在本项目中我们将使用 Python 爬虫技术从猫眼电影网站抓取电影信息。猫眼电影是一个知名的电影信息平台提供了丰富的电影相关数据。通过这个练习您将深入学习如何抓取动态网站的数据包括发送请求、解析 JSON 数据、处理分页等基本技术。
2. 项目目标
爬取猫眼电影网站的电影信息包括电影名称、评分、票房、上映时间等。将抓取的数据保存为CSV文件便于后续分析与使用。
3. 核心工具
Python 3.x 编程语言环境。requests 用于发送 HTTP 请求。json 用于解析 JSON 数据。pandas 用于数据存储和处理。BeautifulSoup 用于解析 HTML 文档如需处理 HTML 内容。
4. 环境准备
确保您的环境中安装了以下库。在终端中运行以下命令
pip install requests pandas beautifulsoup45. 数据抓取流程
5.1 确定目标网址和接口
我们要爬取的猫眼电影数据源是一个 API 接口可以通过特定的 GET 请求获取数据。猫眼的电影数据接口如下
https://maoyan.com/board/45.2 发送请求
使用 requests 库向网页发送请求获取网页内容。
5.3 解析JSON数据
使用 json 库解析获取的 JSON 数据。
5.4 提取电影信息
从解析的内容中提取所需的电影信息。
5.5 处理分页
处理多页数据确保提取到所有电影信息。
5.6 数据存储
将提取到的数据存储为 CSV 文件。
5.7 运行流程图 #mermaid-svg-YRGGMwwz264PVQFN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YRGGMwwz264PVQFN .error-icon{fill:#552222;}#mermaid-svg-YRGGMwwz264PVQFN .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YRGGMwwz264PVQFN .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-YRGGMwwz264PVQFN .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YRGGMwwz264PVQFN .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YRGGMwwz264PVQFN .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YRGGMwwz264PVQFN .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YRGGMwwz264PVQFN .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YRGGMwwz264PVQFN .marker.cross{stroke:#333333;}#mermaid-svg-YRGGMwwz264PVQFN svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YRGGMwwz264PVQFN .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YRGGMwwz264PVQFN .cluster-label text{fill:#333;}#mermaid-svg-YRGGMwwz264PVQFN .cluster-label span{color:#333;}#mermaid-svg-YRGGMwwz264PVQFN .label text,#mermaid-svg-YRGGMwwz264PVQFN span{fill:#333;color:#333;}#mermaid-svg-YRGGMwwz264PVQFN .node rect,#mermaid-svg-YRGGMwwz264PVQFN .node circle,#mermaid-svg-YRGGMwwz264PVQFN .node ellipse,#mermaid-svg-YRGGMwwz264PVQFN .node polygon,#mermaid-svg-YRGGMwwz264PVQFN .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YRGGMwwz264PVQFN .node .label{text-align:center;}#mermaid-svg-YRGGMwwz264PVQFN .node.clickable{cursor:pointer;}#mermaid-svg-YRGGMwwz264PVQFN .arrowheadPath{fill:#333333;}#mermaid-svg-YRGGMwwz264PVQFN .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YRGGMwwz264PVQFN .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YRGGMwwz264PVQFN .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-YRGGMwwz264PVQFN .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-YRGGMwwz264PVQFN .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YRGGMwwz264PVQFN .cluster text{fill:#333;}#mermaid-svg-YRGGMwwz264PVQFN .cluster span{color:#333;}#mermaid-svg-YRGGMwwz264PVQFN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YRGGMwwz264PVQFN :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 开始 发送请求到猫眼 获取JSON内容 解析JSON数据 提取电影信息 处理分页 存储数据到CSV 结束 6. 示例代码
以下是完整的代码示例分为几个功能部分以便更好理解。
6.1 导入必要的库
import requests
import pandas as pd
import json
import time6.2 发送请求并获取页面内容
def fetch_movies(page):url fhttps://maoyan.com/board/4?offset{page * 10}headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36}response requests.get(url, headersheaders)if response.status_code 200:return response.textelse:print(请求失败, response.status_code)return None6.3 解析HTML并提取信息
def parse_movies(html):movies []soup BeautifulSoup(html, html.parser)for item in soup.find_all(div, class_movie-item-info):title item.find(p, class_name).text.strip()star item.find(p, class_star).text.strip()score item.find(p, class_score).text.strip()release_time item.find(p, class_releaese).text.strip().split()[-1]movies.append({Title: title,Star: star,Score: score,Release Time: release_time})return movies6.4 存储数据到CSV
def save_to_csv(movies, filenamemaoyan_movies.csv):df pd.DataFrame(movies)df.to_csv(filename, indexFalse, encodingutf-8-sig)print(f数据已保存到 {filename})6.5 主程序
def main():all_movies []for page in range(10): # 爬取前 10 页数据html fetch_movies(page)if html:movies parse_movies(html)all_movies.extend(movies)time.sleep(2) # 添加延迟避免请求过快save_to_csv(all_movies)if __name__ __main__:main()7. 数据分析与检查
运行完毕后我们可以使用 pandas 读取 CSV 文件并检查数据
def load_and_check_csv(filenamemaoyan_movies.csv):df pd.read_csv(filename)print(df.head())print(f总电影数: {len(df)})load_and_check_csv()8. 样例输出
执行后输出的 maoyan_movies.csv 文件中将包含如下示例数据
TitleStarScoreRelease Time你好李焕英张小斐贾玲9.62021-02-12你的婚礼祝绪丹陈飞宇9.22021-02-14夺冠巩俐黄渤9.02020-12-02
9. 注意事项
反爬虫机制猫眼可能会使用反爬虫机制建议在请求之间加上延迟模拟人类访问。合法合规请遵循猫眼的使用协议确保抓取信息不违反网站政策。数据质量抓取的数据质量可能会受到影响需要进行数据清洗和校验。
10. 总结
通过本项目您学习了如何使用 Python 爬虫技术从猫眼电影网站中抓取电影信息。掌握了数据获取、解析和存储的基本流程。接下来可以尝试改进程序例如抓取更详细的电影信息尝试其他页面或增加异常处理等以深入理解 Python 爬虫的应用潜力。 怎么样今天的内容还满意吗再次感谢观众老爷的观看。 最后祝您早日实现财务自由还请给个赞谢谢