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

Python爬虫项目集:豆瓣电影排行榜top250

关于整理日常练习的一些爬虫小练习,可用作学习使用。

爬取项目以学习为主,尽可能使用更多的模块进行练习,而不是最优解。

爬虫概要

示例python 库
爬取模块request
解析模块BeautifulSoup
存储类型list(方便存入数据库)

解析

 

代码示例

# -*- coding: utf-8 -*-import requests
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
from bs4 import BeautifulSoup# 爬虫主体
def get_page(url):headers = {'Connection': 'keep-alive','Cache-Control': 'max-age=0','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3','Referer': 'https://maoyan.com/board',}try:response = requests.get(url=url, headers=headers).textreturn responseexcept ReadTimeout:  # 访问超时的错误print('Timeout')except ConnectionError:  # 网络中断连接错误print('Connect error')except RequestException:  # 父类错误print('Error')# 解析网页
def parse_page(html):soup = BeautifulSoup(html, 'lxml')grid = soup.find(name="ol", attrs={"class": "grid_view"})movie_list = grid.find_all("li")for movie in movie_list:rank = movie.find(name="em").getText()name = movie.find(name="span", attrs={"class": "title"}).getText()rating_num = movie.find(name="span", attrs={"class": "rating_num"}).getText()# bd = movie.find(name="p").getText().strip().replace('   ', '\n').replace('...\n                            ', '...\n').replace(' / ', '\n').split('\n')  # 头皮发麻字符串分解系列,因为练习没用 re,果然原生字符串处理麻烦的一匹,strip去除空格,replace替换,旨在将不同信息分类存储到不同的参数,如导演、主演、上映时间、上映时间和电影类型bd = movie.find(name="p").getText().strip().replace('   ', '\n').replace('...\n                            ', '...\n').replace(' / ', '\n').split('\n')  # 头皮发麻字符串分解系列,因为练习没用 re,果然原生字符串处理麻烦的一匹,strip去除空格,replace替换,旨在将不同信息分类存储到不同的参数,如导演、主演、上映时间、上映时间和电影类型# 豆瓣有些主演没有。。。贼蛋疼,为了简便只能写个烂代码再增加一次了if len(bd) == 4:bd.insert(1, '没爬到')inq = movie.find(name="span", attrs={"class": "inq"})# 处理 inq 为空的情况if not inq:inq = "暂无"else:inq = inq.getText()# 这里直接存储到字典,方便存到数据库douBanDict['rank'] = rankdouBanDict['name'] = namedouBanDict['director'] = bd[0]douBanDict['actor'] = bd[1]douBanDict['release_time'] = bd[2].strip()  # 某些列表有空格,直接strip()去除空格douBanDict['country'] = bd[3]douBanDict['movie_types'] = bd[4]douBanDict['rating_num'] = rating_numdouBanDict['inq'] = inqdouBanList.append(str(douBanDict))  # 字典先转为字符串再累加到列表中,否则无法字典值会一直变return douBanListif __name__ == '__main__':douBanList = []douBanDict = {}for start in range(0, 250, 25):url = 'https://movie.douban.com/top250?start={}&filter='.format(start)html = get_page(url)douBanList = parse_page(html)print(douBanList)

数据存储

直接是列表格式,同时包含各个电影信息的字典。

 

相关文章:

Python爬虫项目集:豆瓣电影排行榜top250

关于整理日常练习的一些爬虫小练习,可用作学习使用。 爬取项目以学习为主,尽可能使用更多的模块进行练习,而不是最优解。 爬虫概要 示例python 库爬取模块request解析模块BeautifulSoup存储类型list(方便存入数据库&#xff09…...

34-Openwrt uhttpd与rpcd

uhttpd作为一个简单的web服务器,其代码量并不多,而且组织结构比较清楚。和其它网络服务器差不多,其main函数进行一些初始化(首先parse config-file,然后parse argv),然后进入一个循环&#xff0…...

uni app 树状结构数据展示

树状数据展示,可以点击item 将点击数据给父组件 ,满足自己需求。不喜勿喷,很简单可以根据自己需求改哈,不要问,点赞收藏就好。其实可以和上一篇文章uni app 自定义 带popup弹窗的input组件-CSDN博客结合使用&#xff…...

KVM在线yum源部署-centos 7

一、虚拟化简介 虚拟化就是操作系统里嵌套操作系统,一台服务器买回来,可能只是用作一个http服务,资源不能充分利用,而虚拟化的诞生有效解决了这个问题,以硬件资源上使用虚拟化,实现单硬件多系统,充分挖掘硬件性能,节能增效。同时通过多年的改进发展,虚拟化进化成云服务…...

TSF的服务发现与Consul有何区别?

TSF(腾讯服务框架)和Consul都是用于服务发现的工具,但它们在设计理念、功能特性、集成方式等方面存在一些区别。 ### 设计理念和目标 **Consul** 是一个开源的工具,用于服务发现、配置和分段。它提供了一种简单的方式来注册和发现服务,以及健康检查和键值存储功能。Consul…...

kotlin集合框架

1、集合框架的接口类型对比 2、不可变和可变List fun main() {// 不可变List - 不能删除或添加元素val intList: List<Int> listOf(1,2,3)intList.forEach{println(it) // 1 2 3}println("")// 可变List - 可以删除或添加元素val mutableList mutableListO…...

服务器(Linux系统的使用)——自学习梳理

root表示用户名 后是机器的名字 ~表示文件夹&#xff0c;刚上来是默认的用户目录 ls -a 可以显示出隐藏的文件 蓝色的表示文件夹 白色的是文件 ll -a 查看详细信息 total表示所占磁盘总大小 一般以KB为单位 d开头表示文件夹 -代表文件 后面得三组rwx分别对应管理员用户-组…...

竞赛选题 python+opencv+深度学习实现二维码识别

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度学习实现二维码识别 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 该项目较为新颖&…...

Java读取指定 JAR 包路径中的 git.properties 文件

Java读取指定 JAR 包路径中的 git.properties 文件 在上述代码中&#xff0c;首先打开 JAR 文件&#xff0c;获取 git.properties 文件的 JarEntry 对象&#xff0c;如果存在该条目&#xff0c;就获取其输入流进行后续的读取和处理。具体的读取和处理逻辑需要根据您的实际需求在…...

逻辑回归(Logistic Regression)及其在机器学习中的应用

&#x1f680;时空传送门 &#x1f50d;逻辑回归原理&#x1f4d5;Sigmoid函数&#x1f388;逻辑回归模型 &#x1f4d5;损失函数与优化&#x1f388;损失函数&#x1f680;优化算法 &#x1f50d;逻辑回归的应用场景&#x1f340;使用逻辑回归预测客户流失使用scikit-learn库实…...

【计算机视觉】人脸算法之图像处理基础知识【七】

直方图均衡化 直方图均衡化是一种常用的图像处理技术&#xff0c;用于改善图像的对比度&#xff0c;特别是在图像的细节被埋没在暗部或亮部区域时。通过重新分配图像的像素强度值&#xff0c;使得图像的整体对比度增强&#xff0c;从而让更多的细节变得可见。 import cv2 imp…...

家政预约小程序14权限配置

目录 1 创建用户2 创建角色3 启用登录4 实现退出总结 我们现在小程序端的功能基本开发好了&#xff0c;小程序开发好之后需要给运营人员提供管理后台&#xff0c;要分配账号、配置权限&#xff0c;我们本篇就介绍一下权限如何分配。 1 创建用户 在微搭中&#xff0c;用户分为内…...

解决 vue 项目一直出现 sockjs-node/info?t=问题

其实如果是在开发环境&#xff0c;应该是开发的时候网络环境变更导致&#xff0c;比如你切换无线网络&#xff0c;导致开发服务器的IP地址换了&#xff0c;这样开发服务器会不知道如何确定访问源。开发环境中关闭npm dev server&#xff0c;然后重新npm run serve重新构建服务环…...

麒麟信安系统关闭core文件操作

在使用麒麟信安系统时&#xff0c;如果应用程序运行过程中崩溃了&#xff0c;此时并不会导致内核崩溃&#xff0c;只会在tmp目录下产生崩溃数据&#xff0c;如下图 不过tmp目录下的分区容量有限&#xff0c;当崩溃的应用core文件过大时将会占用tmp空间&#xff0c;导致tmpfs分区…...

微信小程序轮播图

效果图 详情可见 微信小程序 参照&#xff1a;swiper | uni-app官网 代码&#xff1a; <!--轮播图-- > <swiper interval"2000" autoplay"true" circular"true" style"height: 300px;"><swiper-item style&qu…...

redisson WRONGPASS invalid username-password pair or user is disable

1、技术架构&#xff1a;若依微服务框架 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.1</version></dependency> <dependency><…...

QT拖放事件之一:初识拖放4大事件处理函数

0、拖放 两个动作,合在一起称之为拖放事件; 拖:就是拖着走; 放:就是拖着走,然后松开鼠标了,释放了,这就是放; 注意:放:拖着的东西要放在什么地方??? 假如,我将一个记事本拖着跑,然后放到一个Widget窗口上,那么为了使得Widget能感知相应的事件(拖着进入事件…...

使用Python进行数据可视化:从基础到高级

使用Python进行数据可视化:从基础到高级 数据可视化是数据分析过程中不可或缺的一部分,通过图形化的方式展示数据,可以更直观地发现数据中的趋势和模式。Python凭借其丰富的库和强大的功能,成为数据可视化的首选编程语言。本文将介绍数据可视化的基础概念、常用的Python库…...

【十二】图解 Spring 核心数据结构:BeanDefinition

图解 Spring 核心数据结构&#xff1a;BeanDefinition 简介 使用spring框架的技术人员都知道spring两个大核心技术IOC和AOP&#xff0c;随着投入更多的时间去学习spring生态&#xff0c;越发觉得spring的发展不可思议&#xff0c;一直都是引领着Java EE的技术变革&#xff0c;这…...

速盾:阿里云ddos黑洞是怎么回事?

阿里云ddos黑洞是一种防御分布式拒绝服务&#xff08;DDoS&#xff09;攻击的安全机制。DDoS攻击是指利用大量的合法请求占用目标服务器的资源&#xff0c;从而使服务器无法正常响应合法用户的请求。为了应对这种攻击&#xff0c;阿里云引入了黑洞机制。 黑洞机制是一种主动防…...

Windows安卓驱动安装终极解决方案:一键自动化ADB Fastboot工具

Windows安卓驱动安装终极解决方案&#xff1a;一键自动化ADB Fastboot工具 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirro…...

从无人机炸机到平稳飞行:IMU椭球拟合校准实战避坑指南

从无人机炸机到平稳飞行&#xff1a;IMU椭球拟合校准实战避坑指南 去年夏天&#xff0c;我在郊外测试一台自组装的四轴无人机时&#xff0c;经历了惊心动魄的一幕——起飞不到30秒&#xff0c;飞行器突然失控翻滚&#xff0c;最终坠毁在草地上。拆解排查后发现&#xff0c;问题…...

Creo二次开发避坑:用ProAsmcomppathInit搞定装配体遍历,别再卡在ProFeature转ProAsmcomppath了

Creo二次开发实战&#xff1a;高效构建装配体遍历路径的深度解析 在Creo二次开发领域&#xff0c;装配体遍历是许多高级功能的基础操作&#xff0c;但开发者常常会在ProFeature到ProAsmcomppath的转换过程中遭遇瓶颈。本文将从底层数据结构入手&#xff0c;揭示一种被多数文档忽…...

推理服务为什么一上模型压缩组合就开始精度雪崩:从量化-剪枝-蒸馏的叠加效应到恢复策略的工程实战

一、精度雪崩的生产现场 &#x1f525; 某团队部署 LLaMA-2-7B 推理服务时&#xff0c;为降低显存、提升吞吐&#xff0c;同时对模型做 W4A16 量化、30% 结构化剪枝与层蒸馏。单独测试时&#xff0c;量化版困惑度上升 8%&#xff0c;剪枝版上升 12%&#xff0c;蒸馏版上升 15%。…...

Vivado 2022.1里Floating-point IP核的隐藏技巧:如何优化开方运算的延迟与资源消耗

Vivado 2022.1浮点开方IP核深度调优&#xff1a;从参数配置到硬件实现的黄金法则 在FPGA信号处理系统中&#xff0c;浮点运算单元往往是性能瓶颈所在。当设计一个实时性要求极高的雷达信号处理链路时&#xff0c;我曾在某型号的Xilinx UltraScale器件上遭遇过这样的困境&#x…...

CSDN博客批量下载器重构实战:MVC架构下的智能爬虫解决方案

CSDN博客批量下载器重构实战&#xff1a;MVC架构下的智能爬虫解决方案 【免费下载链接】CSDNBlogDownloader 项目地址: https://gitcode.com/gh_mirrors/cs/CSDNBlogDownloader 在技术博客内容日益成为开发者知识体系核心的时代&#xff0c;网络内容的不稳定性与知识管…...

细胞的“近距离对话大师”——Notch信号通路

在我们身体里&#xff0c;细胞并非孤立存在&#xff0c;它们通过信号通路精准沟通&#xff0c;其中Notch信号通路堪称细胞间的“近距离对话大师”&#xff0c;从果蝇到人类都高度保守&#xff0c;不靠远距离信号扩散&#xff0c;仅靠相邻细胞“面对面接触”&#xff0c;就能掌控…...

芯片与封装热协同设计:当“先进制程”遇上“散热墙”

&#x1f393;作者简介&#xff1a;科技自媒体优质创作者 &#x1f310;个人主页&#xff1a;莱歌数字-CSDN博客 211、985硕士&#xff0c;从业16年 从事结构设计、热设计、售前、产品设计、项目管理等工作&#xff0c;涉足消费电子、新能源、医疗设备、制药信息化、核工业等…...

Perplexity实时新闻查询效率翻倍:从API调用到结果过滤的7个隐藏技巧

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity实时新闻查询效率翻倍&#xff1a;从API调用到结果过滤的7个隐藏技巧 Perplexity 的实时新闻 API&#xff08;如 /search/news 端点&#xff09;在默认配置下常因冗余字段、未压缩响应和同步阻塞而…...

taotoken用量看板如何帮助开发者清晰掌握各模型消耗详情

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 taotoken用量看板如何帮助开发者清晰掌握各模型消耗详情 对于使用多个大模型进行开发的团队或个人而言&#xff0c;成本管理是一个…...