【python爬虫】—豆瓣电影Top250

豆瓣电影Top250

  • 豆瓣榜单简介
  • 需求描述
  • Python实现

豆瓣榜单简介

  • 豆瓣电影 Top 250 榜单是豆瓣网站上列出的评分最高、受观众喜爱的电影作品。这个榜单包含了一系列优秀的影片,涵盖了各种类型、不同国家和时期的电影。

需求描述

  • 使用python爬取top250电影,获取相应电影排名,电影名,星级, 打分和评论人数信息,将信息输出到Excel表格中。

Python实现

  • 获取爬取网页
def download_all_htmls(index = list(range(0, 250, 25))):htmls = []for idx in index:url = f"https://movie.douban.com/top250?start={idx}&filter="print("craw html:", url)# 豆瓣具有反爬虫机制,添加headersheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'}r = requests.get(url, headers = headers)if r.status_code != 200:raise Exception("error")htmls.append(r.text)return htmls
  • 解析得到单个网页内容
def parse_single_heml(html):soup = BeautifulSoup(html, 'html.parser')article_items = soup.find('div', class_='article')\.find('ol', class_='grid_view')\.find_all('div', class_='item')datas = []for article_item in article_items:rank = article_item.find('div', class_='pic').find('em').get_text()info = article_item.find('div', class_='info')title = info.find('div', class_='hd').find('span', class_='title').get_text()stars = info.find('div', class_='bd').find('div', class_='star').find_all('span')rating_star = stars[0]["class"][0]rating_num = stars[1].get_text()comments = stars[3].get_text()datas.append({'rank': rank,'title': title,'rating_star': rating_star.replace("rating","").replace("-t",""),'rating_num': rating_num,'comments': comments.replace("人评价", "")})return datas
  • 爬取相关内容,并将结果写入Excel
import requests
from bs4 import BeautifulSoup
import pandas as pd
import pprint
import jsonhtmls = download_all_htmls()
all_datas = []
for html in htmls:all_datas.extend(parse_single_heml(html))
df = pd.DataFrame(all_datas)
df.to_excel("practice03_豆瓣电影top250.xlsx", index=False)
  • 结果展示
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/62991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python 自动化】自媒体剪辑第一版·思路简述与技术方案

大家都知道我主业是个运维开发(或者算法工程师),每天时间不多,但我又想做自媒体。然后呢,我就想了个方案,每天起来之后写个短视频的脚本,包含一系列图片和文字,然后上班的时候给它提…

AMEYA360代理 | 佰维eMMC、LPDDR存储芯片赋能电视终端流畅体验

5G、AI、VR、AR等技术的发展,助推智能电视、机顶盒等电视终端成为智能家居领域不可忽视的重要设备。随着4K超高清(UHD)技术、虚拟现实技术(VR)和增强现实技术(AR)的普及,并向8K超高清技术不断渗透,电视终端将可以为消费者提供更清晰的视觉体验…

【简单】228. 汇总区间

原题链接:https://leetcode.cn/problems/summary-ranges/description/ 228. 汇总区间 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖&…

vue通过draggable实现拖拽功能

1. 官方文档 2. 安装 yarn add vuedraggable npm i -S vuedraggable <script src"//cdnjs.cloudflare.com/ajax/libs/Vue.Draggable/2.20.0/vuedraggable.umd.min.js"></script> 3. 其他组件&#xff1a; sortablejs.js拖拽 非官网文档 npm install …

PingCode DevOps 团队:企业CICD流水线可能会遇到的问题及解法

CICD 流水线是指一系列自动化的构建、测试和部署步骤&#xff0c;用于将应用程序从开发到生产环境的过程。在 CICD 流水线中&#xff0c;每个步骤都是自动化的&#xff0c;并且在完成后会触发下一个步骤的执行。 CICD 的价值 CICD 流水线可以帮助团队更快地交付产品&#xff…

16 Linux之JavaEE定制篇-搭建JavaEE环境

16 Linux之JavaEE定制篇-搭建JavaEE环境 文章目录 16 Linux之JavaEE定制篇-搭建JavaEE环境16.1 概述16.2 安装JDK16.3 安装tomcat16.4 安装idea2020*16.5 安装mysql5.7 学习视频来自于B站【小白入门 通俗易懂】2021韩顺平 一周学会Linux。可能会用到的资料有如下所示&#xff0…

Windows右键添加用 VSCODE 打开

1.安装VSCODE时 安装时会有个选项来添加&#xff0c;如下&#xff1a; ①将“通过code 打开“操作添加到windows资源管理器文件上下文菜单 ②将“通过code 打开”操作添加到windows资源管理器目录上下文菜单 说明&#xff1a;①②勾选上&#xff0c;可以对文件&#xff0c;目…

XSS 攻击是什么?怎么验证是否有XSS攻击漏洞?

XSS&#xff08;跨站脚本&#xff0c;Cross-Site Scripting&#xff09;攻击是一种网络攻击&#xff0c;攻击者利用网站漏洞将恶意脚本注入用户的浏览器&#xff0c;从而在用户浏览网页时执行恶意代码。这种攻击可能造成用户敏感信息泄露、钓鱼、欺诈等安全问题。 验证是否有 …

C#,《小白学程序》第八课:列表(List)应用之二“编制高铁列车时刻表”

1 文本格式 /// <summary> /// 车站信息类 class /// </summary> public class Station { /// <summary> /// 编号 /// </summary> public int Id { get; set; } 0; /// <summary> /// 车站名 /// </summary&g…

算法训练第五十二天

718. 最长重复子数组 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int findLength(vector<int>& nums1, vector<int>& nums2) {vector<vector<int>> dp(nums1.size() 1,vector<int>(nums2.size() 1,0));int res…

Windows docker desktop 基于HyperV的镜像文件迁移到D盘

Docker desktop的HyperV镜像文件&#xff0c;默认是在C盘下 C:\ProgramData\DockerDesktop\vm-data\DockerDesktop.vhdx如果部署的软件较多&#xff0c;文件较大&#xff0c;或者产生日志&#xff0c;甚至数据等&#xff0c;这将会使此文件越来越大&#xff0c;容易导致C盘空间…

java 浅谈ThreadLocal底层源码(通俗易懂)

目录 一、ThreadLocal类基本介绍 1.概述 : 2.作用及特定 : 二、ThreadLocal类源码解读 1.代码准备 : 1.1 图示 1.2 数据对象 1.3 测试类 1.4 运行测试 2.源码分析 : 2.1 set方法解读 2.2 get方法解读 一、ThreadLocal类基本介绍 1.概述 : (1) ThreadLocal&#xff0c;本…

[机缘参悟-103] :IT人关于接纳的思考与感悟

目录 前言&#xff1a; 一、接纳 1.1 什么是接纳 1.2 对接纳的误解 1.3 接纳的含义 1.4 "存在即合理" VS 接纳 1.5 接纳 VS 躺平 VS 随遇而安 1.6 为什么现实总是那么不尽人意 1.7 现实世界的多样性 1.8 接纳与认命 1.9 不接纳的表现 前言&#xff1a; …

python3.11教程1:python基础语法、程序控制、函数

文章目录 一、Python简介1.1 为什么学习python1.2 python安装与配置1.3 python解释器1.4 命令行参数1.4.1 sys.argv变量1.4.2 -c和-m选项 1.5 解释器的运行环境1.5.1 编码格式1.5.2 编码声明 二、Python基础语法2.1 行结构2.2 变量&#xff08;标识符&#xff09;2.3 字节串2.4…

神经网络NLP基础 循环神经网络 LSTM

用的时候&#xff0c;只关心token的输入&#xff0c;以及hidden state就好了 sequence的length是多少&#xff0c;lstm的cell的数量就是多少 LSTM BI-LSTM stacked lstm GRU 实现

【计算机网络】TCP 的三次握手和四次挥手

TCP 是面向连接的&#xff0c;面向连接就是数据通讯的时候需要进行三次握手&#xff0c;断开通讯的时候需要进行四次挥手。 1.seq(sequence number)&#xff0c;序列号&#xff0c;随机生成的 2.ack(acknowledgement number)&#xff0c;确认号&#xff0c;ackseq1 3.ACK(ackno…

Linux安装JenkinsCLI

项目简介安装目录 mkdir -p /opt/jenkinscli && cd /opt/jenkinscli JenkinsCLI下载 wget http://<your-jenkins-server>/jnlpJars/jenkins-cli.jar # <your-jenkins-server> 替换为你的 Jenkins 服务器地址 JenkinsCLI授权 Dashboard-->Configure Glob…

希尔贝壳入选“北京市人工智能大模型高质量数据集发布(第二批)”合作企业

8月28日&#xff0c;2023中国国际服务贸易交易会通用人工智能算力论坛在石景山区举办。论坛上&#xff0c;北京市人工智能大模型高质量数据集&#xff08;第二批&#xff09;发布&#xff0c;其中包含北京希尔贝壳科技有限公司的“大模型方言口语语音数据集”和“智能会议场景高…

评估安全 Wi-Fi 接入:Cisco ISE、Aruba、Portnox 和 Foxpass

在当今不断变化的数字环境中&#xff0c;对 Wi-Fi 网络进行强大访问控制的需求从未像现在这样重要。各组织一直在寻找能够为其用户提供无缝而安全的体验的解决方案。 在本博客中&#xff0c;我们将深入探讨保护 Wi-Fi&#xff08;和有线&#xff09;网络的四种领先解决方案——…

数据库(一)

数据库 1.为什么要使用数据库 如果要存储数据&#xff0c;我们是可以使用文件来存储数据的&#xff0c;但是使用文件管理数据有很多缺点&#xff0c;比如&#xff1a; 不安全&#xff0c;不利于管理&#xff0c;查询&#xff0c;如果要存储大量的数据&#xff0c;使用文件管理…