Python | 看看豆瓣Top250电影有哪些?

简介: 这段时间在学习`Python` ,练习一下,爬一下豆瓣Top250的电影有哪些?

这段时间在学习Python ,练习一下,爬一下豆瓣Top250的电影有哪些?

思路

  • 需要知道一共有多少页
  • 爬单个页面数据处理
  • 分页爬取,循环一下单个页面数据处理就好了

代码

import requests
import re
from bs4 import BeautifulSoup
import json
import os

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"}
url = 'https://movie.douban.com/top250'


def find_count():  # 找到页数,每页25个
    res = requests.get(url, headers=headers)
    if res.status_code == 200:
        soup = BeautifulSoup(res.text, features='lxml', from_encoding='utf-8')
        count = soup.select('.count')[0].string
        return [int(s) for s in re.findall(r'-?\d+\.?\d*', count)][0]


def handle_text(page_num):  # 处理函数
    res = requests.get(url + f'?start={page_num}', headers=headers)
    list = []
    if res.status_code == 200:
        soup = BeautifulSoup(res.text, features='lxml', from_encoding='utf-8')
        pic = soup.select('.pic')
        for k in range(0, len(pic)):
            index = pic[k].find('em').string
            imgs = pic[k].find('img').attrs
            list.append(
                {"index": index,  "name": imgs['alt'], "img": imgs['src']})
        return list


# 如果存在文件,则删除
if os.path.exists('./douban.json'):
    os.remove('./douban.json')
# 获取需要请求的次数
count = int(find_count() / 25)
# 开始处理数据
result = []
for k in range(count):
    result_item = handle_text(k*25)
    for i in result_item:
        result.append(i)
# 保存文件
fs = open('./douban.json', 'a', encoding='utf-8')
fs.write(json.dumps(result, ensure_ascii=False))
fs.close()

结论

最后会在同一个文件夹下面生成一个douban.json的数组对象。
传送门:nodejs版本

相关文章
|
7月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
8月前
|
数据采集 存储 JSON
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
|
11月前
|
数据采集 Web App开发 前端开发
Python+Selenium爬虫:豆瓣登录反反爬策略解析
Python+Selenium爬虫:豆瓣登录反反爬策略解析
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
908 1
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能电影制作与剪辑
使用Python实现深度学习模型:智能电影制作与剪辑
560 5
|
数据采集 存储 机器学习/深度学习
豆瓣评分7.6!Python大牛教你如何采集网络数据
网络数据采集大有所为。在大数据深入人心的时代,网络数据采集作为网络、数据库与机器学习等领域的交汇点,已经成为满足个性化网络数据需求的最佳实践。你在浏览器上看到的内容,大部分都可以通过编写Python 程序来获取。如果你可以通过程序获取数据,那么就可以把数据存储到数据库里。如果你可以把数据存储到数据库里,自然也就可以将这些数据可视化。 今天给小伙伴们分享的这份手册采用简洁强大的Python语言,介绍了网络数据采集,并为采集新式网络中的各种数据类型提供了全面的指导。
豆瓣评分9.4!最适合Python入门后进阶的Python食谱!
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
|
程序员 测试技术 开发工具
豆瓣评分7.9!世界级讲师耗时5年整理出的Python学习手册!
Python是一门流行的开源编程语言,广泛用于各个领域的独立程序与脚本化应用中。它不仅免费、可移植、功能强大,同时相对简单,而且使用起来充满乐趣。从软件业界的任意一角到来的程序员,都会发现Python着眼于开发者的生产效率以及软件质量,因此无论你的项目是大还是小,选择Python都将带来战略性的优势。 今天给小伙伴们分享的这份手册讲述了完整的Python语言,力争满足“语言”和“原理”两个方面的需求,并拥有足够的深度以便实用。废话不多说,下面展示给大家。
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的电影订票管理系统
该项目是基于Python+Vue开发的电影订票管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的电影订票管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
250 1

推荐镜像

更多