当前位置: 首页 > article >正文

Python实践:爬取电影数据并进行数据分析

在这篇文章中,我们将通过Python爬虫技术从The Movie Database (TMDb)网站上抓取电影数据,并对这些数据进行分析。我们将使用到一些流行的Python库,比如requestslxmlpandas以及matplotlib来帮助我们完成任务。
目标网站
在这里插入图片描述

1. 引言

在开始之前,请确保你已经安装了所有必需的Python库。你可以使用pip命令来安装它们:

pip install requests lxml pandas matplotlib DrissionPage DataRecorder fake_useragent

接下来,让我们一步步地构建我们的项目。

2. 导入所需库

首先,我们需要导入项目中需要用到的各种库。

import json
import os
import random
import re
from DrissionPage import ChromiumPage
from DataRecorder import Recorder
import time
import requests
from lxml import etree
from fake_useragent import UserAgent
import pandas as pd
import matplotlib.pyplot as plt

3. 创建数据记录器实例

为了保存抓取到的数据,我们创建一个DataRecorder实例,并初始化CSV文件的列名。

recorder = Recorder(path=r"data.csv", cache_size=500)
recorder.add_data(
    ['Title', 'Year', 'Director', 'Screenplay', 'Type', 'Description', 'User Score', 'Reviews', 'Revenue', 'Budget',
     'Keywords'])

4. 加载网页并抓取电影链接

我们使用ChromiumPage加载TMDb的电影列表页面,并循环抓取多页的电影详情页链接。

page = ChromiumPage()
page.get('https://www.themoviedb.org/movie')
page.wait.load_start()

i = 0
set_links = set()

while True:
    items = page.eles('.card style_1')
    for item in items:
        link = item.ele('x:./div[1]/div[1]/a').attr('href')
        set_links.add(link)
    print(len(set_links))

    if page.ele("x://p[@class='load_more']"):
        page.ele("x://p[@class:='load_more']").click()
        page.wait.load_start()
        i += 1
        print(

http://www.kler.cn/a/368859.html

相关文章:

  • 智能语音设备测试 | 音频基础
  • 灵动AI:艺术与科技的融合
  • 初识jsp
  • Spring-SpringMVC-SpringBoot理解
  • 01.04、回文排序
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-24
  • ORACLE数据库基于SQL*PLUS开启:闪回查询
  • 小程序中设置可拖动区域
  • Centos Stream 9部署Zabbix7.0LTS
  • Python实现深度学习模型预测控制(tensorflow)DL-MPC(Deep Learning Model Predictive Control
  • RabbitMQ常见问题持续汇总
  • 无人机机载激光雷达横向对比表
  • Qt setWindowFlags窗口标志
  • LeetCode437. 路径总和 III(2024秋季每日一题 50)
  • 摄影爱好者的福音:基于Spring Boot的在线工作室
  • 【人工智能原理】合肥工业大学 宣城校区 实验三 神经网络之网络基础
  • Vmware虚拟机解决摄像头无效,相机失效
  • shodan3,vnc空密码批量连接,ip历史记录查找
  • ReactNative 简述(1)
  • aws(学习笔记第八课) 使用AWS的S3,ACL和存储桶策略
  • C++——输入3个字符串,按由小到大的顺序输出。用指针或引用方法处理。
  • Matlab学习01-矩阵
  • 动态IP是什么?
  • 2024年信息化管理与计算技术研讨会 (ICIMCT 2024)--分会场
  • Kafka系列之:Kafka集群新增节点后实现数据均衡
  • 5G IMS开户需要哪些信息