Python豆瓣爬虫(最简洁的豆瓣250爬虫,随机选择电影)

news2024/11/26 7:38:59

案例背景

电影才是世界艺术,所以我一直想看完豆瓣250,那么就重新拾起我的爬虫知识。

以前刚学爬虫那啥也不会,python语法都没弄清楚,现在不一样了,能用最为简洁的代码写出爬虫250的代码。


代码实现

导入包,写请求头:

import requests; import pandas as pd
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537',}

然后遍历每一面每个电影,我只获取了电影名称评分和简介:
 

info_max = []
for h in range(10):   #10页
    url = f'https://movie.douban.com/top250?start={25 * h}&filter='
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    infos = soup.find_all('div', class_='info')
    for i, info in enumerate(infos):      #每页25个电影
        movie_name = info.find('span', class_='title').text      #名称
        rating_num = info.find('span', class_='rating_num').text #评分
        inq = info.find('span', class_='inq').text if info.find('span', class_='inq') else ''  #简介
        info_max.append([movie_name, rating_num, inq])           #打包添加
    print(f"第{h + 1}页获取完成")

有的同学不知道怎么定位自己需要的信息所在的位置,很简单例如我要获取评分,f12打开网页文件,然后点击元素选择器点评分的位置:

 可以看到评分这一元素对应的是span标签,class_的值也有,传入python就行。:“info.find('span', class_='rating_num').text”,想要别的元素也是一样,选择,然后查看这个元素的标签和class名称。很简单。

查看结果:(只展示前五行)

df=pd.DataFrame(info_max,columns=['电影名称','评分','简介'])
df.index=df.index+1
df.head()

 然后保存为excel就行啦:

df.to_excel('豆瓣.xlsx')

随机电影脚本

每次不知道看什么电影就随机选一个就行,下面是随机选电影的全部代码脚本:

import os,random,time
import requests; import pandas as pd
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537',}
file_name = '豆瓣250.csv'

# 检查文件是否存在
if os.path.exists(file_name) and os.path.isfile(file_name):
    df=pd.read_csv(file_name).set_index('序号')
else:
    print('第一次运行要下载电影信息...')
    info_max = []
    for h in range(10):   #10页
        url = f'https://movie.douban.com/top250?start={25 * h}&filter='
        response = requests.get(url, headers=headers)
        soup = BeautifulSoup(response.text, 'html.parser')
        infos = soup.find_all('div', class_='info')
        for i, info in enumerate(infos):      #每页25个电影
            movie_name = info.find('span', class_='title').text      #名称
            rating_num = info.find('span', class_='rating_num').text #评分
            inq = info.find('span', class_='inq').text if info.find('span', class_='inq') else ''  #简介
            info_max.append([movie_name, rating_num, inq])           #打包添加
        print(f"第{h + 1}页获取完成")
    df=pd.DataFrame(info_max,columns=['电影名称','评分','简介'])
    df.index=df.index+1 ; df.index.name='序号'
    df.to_csv(file_name)

index=random.choice(range(len(df)))+1
print(f"今天看TOP-{index}的电影《{df.loc[index,'电影名称']}》,评分{df.loc[index,'评分']}\n 简介:{df.loc[index,'简介']}")

print('\n=====五秒后自动关闭程序=====')
time.sleep(5)

第一次会下载电影信息,后面每次打开都会随机选一个电影, 很好用的。


打包为EXE文件

这么好用的脚本分享给朋友的话,一来他们不一定有python,二来不一定有对应的包,而且版本可能也对不上....会报错,那么就打包为exe文件,然后就可以给朋友们运行了。

首先安装一个库:

pip install pyinstaller

然后win+r,输入cmd打开终端

输入自己的代码文件所在的路径:

cd /d "E:\Xiao work\其他\自学pandas"

然后输入自己打包的文件:

pyinstaller --onefile 随机看电影.py

 

然后等着就完成啦,这个程序就随便什么电脑都能运行了。

 

 

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

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

相关文章

全方位详解新型轴向磁通电机技术及其应用

售YASA轴向磁通电机 需要请联:shbinzer 拆车邦 01什么是轴向磁通电机 轴向磁通电机(也称为“盘式电机”),其磁通路径与普通径向电机不同,气隙是平面型的,气隙磁场方向与电机轴线方向平行[1-2]。轴向磁通…

CSGO游戏搬砖操作细节和技巧!

最近整理一份steam搬砖的项目操作细节和详细要求 一、国外Steam游戏装备汇率差项目:这个项目的基本原理是 购买国外Steam游戏平台上的装备,再在国内网易Buff平台上或国际站csgo饰品平台进行售卖。从充值汇率和两个平台的装备价格差中获得利润。 二、需要…

怎么画思维导图?教你几个绘制小妙招

怎么画思维导图?思维导图是一种非常有效的学习和思考工具。它可以帮助人们更好地组织和表达想法,从而更加清晰地思考问题。但是,很多人并不知道如何画思维导图。下面这篇文章,就给大家介绍一些绘制思维导图的小技巧。 今天要给大家…

深度学习|CNN卷积神经网络

CNN卷积神经网络 解决的问题人类的视觉原理原理卷积层——提取特征池化层——数据降维全连接层——输出结果 应用图像处理自然语言处理 解决的问题 在CNN没有出现前,图像对人工智能来说非常难处理。 主要原因: 图像要处理的数据量太大了。图像由像素组…

UITableView自定义TableHeader和TableFooter

UITableView自定义TableHeader和TableFooter 我猜你希望的效果是这样的 我猜你希望的效果是这样的 自定义页眉视图 让我们创建一个文件名 UITableViewHeaderFooterView 的 CustomerHeaderView 子类。 现在让我们创建视图的 Xib 文件并将其命名为 CustomHeaderView。 更改高度标…

STM32CubeIDE(SPI读写Flash)

参考:①正点原子MINI教程②STM32F103配合STM32CubeMX实现SPI读写flash_stm32f103 cube spi_zerfew的博客-CSDN博客 目录 一、理论知识 1、SPI特征 2、SPI框图 3、SPI的工作模式 4、W25Q64 4.1 NOR FLASH 的特性 4.2 W25Q64芯片引脚图 4.3 NOR FLASH 工作时序…

jsp 图书销售系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 图书销售系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

安卓移动应用开发实训室建设方案

一 、系统概述 安卓移动应用开发作为新一代信息技术的重点和促进信息消费的核心产业,已成为我国转变信息服务业的发展新热点:成为信息通信领域发展最快、市场潜力最大的业务领域。互联网尤其是移动互联网,以其巨大的信息交换能力和快速渗透能…

论文阅读:DIN-SQL: Decomposed In-Context Learning of Text-to-SQL withSelf-Correction

NL2SQL是将自然语言转化为SQL的任务,该任务隶属于NLP的子任务,NL2SQL在AIGC时代之前,以seq2seq、BERT等系列的模型在NL2SQL的主流数据集上取得了不错的效果,2022年底,ChatGPT爆火,凭借LLM强大的逻辑推理、上…

气传导耳机怎么样?四款值得入手的气传导耳机推荐

​随着科技的进步,蓝牙耳机越来越受欢迎。类型也越来越多,其中气传导耳机因其不入耳设计,佩戴更舒适,音质更自然,能够提供更为清晰、自然的音质。面对还不知如何挑选气传导耳机的用户,在这里,我…

Firefox(火狐),使用技巧汇总,问题处理

本文目的 说明火狐如何安装在C盘之外的盘,即定制安装路径。如何将同步功能切换到本地服务上。默认是国际服务器。安装在C盘之后如何解决,之前安装的扩展无法自动同步的问题。顺带讲解一下,火狐的一些比较好用的扩展。 安装路径定制 火狐目前…

sentinel的基本使用

在一些互联网项目中高并发的场景很多&#xff0c;瞬间流量很大&#xff0c;会导致我们服务不可用。 sentinel则可以保证我们服务的正常运行&#xff0c;提供限流、熔断、降级等方法来实现 一.限流&#xff1a; 1.导入坐标 <dependency><groupId>com.alibaba.c…

行为型(一) - 观察者模式

一、概念 观察者模式&#xff08;Observer Pattern&#xff09;&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候&#xff0c;所有依赖的对象都会自动收到通知。 二、实现 这里举个电视剧订阅的例子&#xff0c;比如琅琊榜&#xff0c;我们…

基于学习交流社区的自动化测试实现

一 项目介绍 项目名称 项目展示链接&#xff1a; 学习交流社区 项目介绍 项目介绍&#xff1a; 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息&#xff0c;项目完成后使用Xshell将其部署到云服务器上。 前端页面&#xff1a; 前端…

让 exoplayer2 支持播放 ftp ( 扩展 exoplayer 支持 ftp 协议 ) 的两种方式

exoplayer 是安卓开源播放器组件库&#xff0c;由谷歌开发维护。它提供了一个可高度扩展的音视频播放框架&#xff0c;支持许多媒体格式与高级媒体功能&#xff0c;比如 adaptive streaming&#xff0c;DRM&#xff0c;以及安卓 media session 集成。 但是不支持 ftp &#xf…

罗德与施瓦茨频谱分析仪RSFSUP50

FSUP50 R&S FSUP50 信号源分析仪&#xff0c;20Hz到50GHz 壹捌叁贰零玖壹捌陆伍叁 R&S FSUP 是一款测量功能丰富、高度灵活的相位噪声测试仪&#xff0c;它兼具***信号和频谱分析仪及单纯相位噪声测试仪两者的功能。 主要特点 频率范围高达 8 GHz、26.5 GHz 或 50…

网络原理详解(图文结合)

目录 ​编辑一、应用层 1、请求和响应 2、通用的协议格式 &#xff08;1&#xff09;xml &#xff08;2&#xff09;json &#xff08;3&#xff09;protobuffer 二、传输层 1、UDP 2、TCP &#xff08;1&#xff09;TCP 协议段格式&#xff1a; &#xff08;2&am…

js中 0==‘0‘、0==[] 为 true ,‘0‘==[] 为false

文章目录 问题分析 问题 js中 0‘0’、0[] 为 true &#xff0c;为什么 ‘0’[] 为false 分析 是弱类型比较 当两者类型不同时会发生类型转换0 “0”&#xff1a;先把“0”转为number类型再比较&#xff1b;0 []&#xff1a;有对象的话&#xff0c;先获取对象的原始值&#…

WPF中的效果Effect

WPF中的效果Effect 前言 WPF提供了可应用于任何元素的可视化效果。效果的目标是提供一种简便的声明式方法&#xff0c;从而改进文本、图像、按钮以及其他控件的外观。不是编写自己的绘图代码&#xff0c;而是使用某个继承自Effect的类&#xff0c;以立即获得诸如模糊、光辉以…

问道管理:数字经济概念走势强劲,竞业达、久其软件等涨停,观想科技等大涨

信创、智慧政务等数字经济概念22日盘中走势微弱&#xff0c;截至发稿&#xff0c;观想科技、慧博云通涨超15%&#xff0c;竞业达、中远海科、久其软件等涨停&#xff0c;云赛智联、延华智能、汇纳科技涨约9%&#xff0c;天玑科技、安硕信息、思特奇、零点稀有涨逾7%。 音讯面上…