import requests
from bs4 import BeautifulSoup
import urllib

# 爬取豆瓣电影分类排行榜 - 喜剧片
url = 'https://movie.douban.com/j/chart/top_list'
params = {
    'type': '24',
    'interval_id': '100:90',
    'action': '',
    'start': '0',
    'limit': '10'
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55'
}

# 发送请求获取数据
response = requests.get(url=url, params=params, headers=headers)

# 将响应解析为JSON格式
list_data = response.json()

# 使用BeautifulSoup解析网页结构
soup = BeautifulSoup(response.text, 'html.parser')

# 解析电影列表
movie_list = soup.find(class_='grid_view').find_all('li')

for movie in movie_list:
    # 获取电影名称和评分
    movie_name = movie.find(class_='title').text
    movie_rating = movie.find(class_='rating_num').text

    # 获取电影详情页链接
    movie_detail_link = movie.find('a')['href']

    # 请求电影详情页
    movie_detail_response = requests.get(movie_detail_link)
    movie_detail_soup = BeautifulSoup(movie_detail_response.text, 'html.parser')

    # # 获取电影下载链接 (示例,实际操作需根据网站结构调整)
    # download_link = movie_detail_soup.find('a', text='[下载]')['href']
    # 
    # # 下载电影视频
    # video_file = f'{movie_name}.mp4'
    # urllib.request.urlretrieve(download_link, video_file)
    # 
    # # 获取电影音频链接
    # audio_link = movie_detail_soup.find('a', text='[音频]')['href']
    # 
    # # 下载电影音频
    # audio_file = f'{movie_name}.mp3'
    # urllib.request.urlretrieve(audio_link, audio_file)

    # 打印电影信息
    print(f'电影名称:{movie_name}')
    print(f'评分:{movie_rating}')
    # print(f'视频文件名:{video_file}')
    # print(f'音频文件名:{audio_file}')
    print('------------------------')

代码说明:

  1. 导入库: 导入requests, BeautifulSoup, urllib库用于网络请求、HTML解析和文件下载。
  2. 设置参数: 设置请求URL、参数和请求头,模拟浏览器行为。
  3. 发送请求: 使用requests.get()发送GET请求获取网页内容。
  4. 解析数据: 使用response.json()将响应解析为JSON格式,使用BeautifulSoup解析网页结构。
  5. 提取信息: 使用find()find_all()方法定位并提取电影名称、评分、详情页链接等信息。
  6. 下载文件: 根据网站结构,使用urllib.request.urlretrieve()下载电影视频和音频文件 (示例代码已注释,实际操作需根据网站结构调整)。
  7. 打印信息: 打印提取到的电影信息。

注意:

  • 爬取网页数据时请遵守网站的robots.txt协议和相关法律法规。
  • 网站结构可能会发生变化,导致代码失效,需要根据实际情况调整代码。
  • 下载电影视频和音频文件涉及版权问题,请谨慎操作。
Python爬虫:使用requests和BeautifulSoup爬取豆瓣电影排行榜

原文地址: https://www.cveoy.top/t/topic/lawW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录