爬取电影天堂数据的Python脚本

介绍

电影天堂是一个非常受欢迎的电影资源网站,提供了大量的电影资源供用户观看和下载。本文将介绍如何使用Python编写一个爬虫脚本,来爬取电影天堂的电影数据。

准备工作

在开始编写爬虫脚本之前,我们需要安装一些Python库。在命令行中执行以下命令来安装所需的库:

pip install requests
pip install BeautifulSoup4

代码示例

下面是爬取电影天堂数据的Python脚本示例:

import requests
from bs4 import BeautifulSoup

def get_movie_list(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    movie_list = []
    for movie in soup.find_all('div', class_='co_content8')[0].ul.find_all('table'):
        movie_name = movie.find_all('a')[1].text
        movie_detail_url = movie.find_all('a')[1]['href']
        movie_list.append({
            'name': movie_name,
            'detail_url': movie_detail_url
        })
    return movie_list

def get_movie_details(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')
    movie_info = {}
    movie_info['name'] = soup.find_all('div', class_='title_all')[0].h1.font.text
    movie_info['download_link'] = soup.find_all('div', class_='co_content8')[0].ul.find_all('table')[0].find_all('a')[1]['href']
    return movie_info

# 爬取列表页
movie_list_url = '
movies = get_movie_list(movie_list_url)

# 爬取电影详情页
for movie in movies:
    movie_url = ' + movie['detail_url']
    movie_info = get_movie_details(movie_url)
    print(movie_info)

代码解析

导入库

首先,我们导入了requests库和BeautifulSoup库。requests库用于发送HTTP请求并获取网页的内容,BeautifulSoup库用于解析HTML文档。

获取电影列表

我们定义了一个get_movie_list函数,该函数接受一个URL作为参数,并返回一个包含电影信息的列表。在函数中,我们首先使用requests.get方法发送GET请求,并将响应的内容保存在response变量中。然后,我们使用BeautifulSoup库解析HTML文档,并通过选择器定位到电影列表的部分。最后,我们遍历每个电影的HTML元素,提取电影的名称和详情URL,并将其存储在一个字典中。将所有电影的字典添加到一个列表中,并返回该列表。

获取电影详情

我们定义了一个get_movie_details函数,该函数接受一个电影详情页的URL作为参数,并返回一个包含电影详细信息的字典。在函数中,我们首先使用requests.get方法发送GET请求,并将响应的内容保存在response变量中。然后,我们使用BeautifulSoup库解析HTML文档,并通过选择器定位到电影详细信息的部分。最后,我们提取电影的名称和下载链接,并将其存储在一个字典中。

爬取数据

在主程序中,我们首先指定电影列表的URL,并调用get_movie_list函数来获取电影列表。然后,我们遍历电影列表,对每个电影调用get_movie_details函数来获取电影的详细信息,并打印出来。

流程图

下面是爬取电影天堂数据的流程图:

sequenceDiagram
    participant 用户
    participant 爬虫
    participant 电影天堂网站

    用户->>爬虫: 发起请求获取电影列表页数据
    爬虫->>电影天堂网站: 发起GET请求
    电影天堂网站-->>爬虫: 返回电影列表页数据
    爬虫->>爬虫: 解析HTML文档,提取电影列表
    爬虫->>用户: 返回电影列表

    用户->>爬虫: 发起