【爬虫实战项目】Python爬取Top100电影榜单数据并保存csv文件(附源码)

news2024/12/23 16:39:46

前言

今天给大家介绍的是Python爬取Top100电影榜单数据保存csv文件,在这里给需要的小伙伴们代码,并且给出一点小心得。

首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随机更换请求头的方式来对Top100电影榜单数据进行爬取。

在每次进行爬虫代码的编写之前,我们的第一步也是最重要的一步就是分析我们的网页。

通过分析我们发现在爬取过程中速度比较慢,所以我们还可以通过禁用谷歌浏览器图片、JavaScript等方式提升爬虫爬取速度。

在这里插入图片描述![电影top![](https://img-blog.csdnimg.cn/710df550f5fb4156bd711f82cf122245.png)

开发工具

Python版本: 3.6

相关模块:

requests模块

time模块

parsel模块

csv模块

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

文中完整代码及文件,评论留言获取

思路分析

浏览器中打开我们要爬取的页面
按F12进入开发者工具,查看我们想要的Top100电影榜单数据在哪里
这里我们需要页面数据就可以了

页面数据

代码实现

for page in range(0, 101, 10):
    time.sleep(2)
    url = 'https://maoyan.com/board/4?offset={}'.format(page)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
        'Cookie': '__mta=20345351.1670903159717.1670903413872.1670903436333.5; uuid_n_v=v1; uuid=A8065B807A9811ED82C293D7E110319C9B09821067E1411AB6F4EC82889E1869; _csrf=916b8446658bd722f56f2c092eaae35ea3cd3689ef950542e202b39ddfe7c91e; Hm_lvt_703e94591e87be68cc8da0da7cbd0be2=1670903160; _lxsdk_cuid=1850996db5dc8-07670e36da28-26021151-1fa400-1850996db5d67; _lxsdk=A8065B807A9811ED82C293D7E110319C9B09821067E1411AB6F4EC82889E1869; __mta=213622443.1670903327420.1670903417327.1670903424017.4; Hm_lpvt_703e94591e87be68cc8da0da7cbd0be2=1670903436; _lxsdk_s=1850996db5e-8b2-284-88a%7C%7C18',
        'Host': 'www.maoyan.com',
        'Referer': 'https://www.maoyan.com/films/1200486'

    }
    response = requests.get(url, headers=headers)
    selector = parsel.Selector(response.text)
    li_s = selector.css('.board-wrapper dd')
    for li in li_s:
        name = li.css('.name a::text').get()
        star = li.css('.star::text').get()
        star_string = star.strip()
        releasetime = li.css('.releasetime::text').get()
        data_time = releasetime.strip()
        follow = li.css('.score i::text').getall()
        score = ''.join(follow)
        dit = {
            '电影名字': name,
            '主演': star_string,
            '上映时间': data_time,
            '评分': score,
        }
        csv_write.writerow(dit)
        print(dit)

Cookie获取

Cookie

效果展示

效果展示

最后

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

里面有适合小白新手的实战教程给到大家~

快来和小鱼一起成长进步吧!

① 100+多本Python PDF(主流和经典的书籍应该都有了)

② Python标准库(最全中文版)

③ 爬虫项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

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

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

相关文章

(四)springcloud之Nacos注册服务与发现-1

前言:一段时间来忙忙碌碌,回头发现很多技术已经更新了很多,很长一段时间都在忙其他的事情,以至于没有太多关注于微服务更新,今天更新了下版本以便于后期使用,突然发现很多东西已经被删除或直接改变了&#…

TIA博途_序列化指令Serialize的具体使用方法示例

TIA博途_序列化指令Serialize的具体使用方法示例 序列化指令的基本用途: 首先,我们可以查看TIA博途中的帮助文件说明,如下图所示: 简单总结就是: 把复杂的数据或数据类型(例如UDT、STRUCT等)转换成BYTE或CHAR类型的数组,从而方便数据处理,通常在通信数据的处理中可以…

DBCO-PEG-amine,二苯并环辛炔PEG氨基 MV 1K、2K、3.4K、4K、5K、10K

1、试剂基团反应特点(Reagent group reaction characteristics): DBCO用于无铜点击化学。在没有铜催化剂的情况下,与叠氮化合物的反应非常迅速。这种反应是非常迅速,温和,和生物相容性,NH2和带N…

数据结构---KMP算法

一、KMP算法简介 KMP算法是一个字符串匹配算法,对暴力算法BF的一种优化,使得时间复杂度大量的降低。 基本概念: s[]是字符串,简单来说,就是比较长的字符串。p[]是模式串,简单来说,就是比较短的…

使用小爱同学语音控制电脑关机 - Winform C#

使用小爱同学语音控制电脑变关机前言实现原理准备注册巴法云账号接入巴法云接入米家编写程序连接TCP接收信息并运行关机指令发送指令订阅主题添加心跳机制后台运行阻止默认关闭窗口事件完整代码前言 小爱同学应该已经是家喻户晓的了,现在一直用来控制家里的家电。于…

selenium + python自动化测试环境搭建(有手就行)

selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: 免费,也不用再为破解QTP而大伤脑筋 小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装…

时序预测 | MATLAB实现PSO-SVM粒子群优化支持向量机时间序列预测

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

LeetCode刷题日记之链表II

1.四数相加II 题目描述 解题思路 1.定义一个哈希Map,其中key存放两数之和,value存放两数和出现的次数。 2.遍历统计出nums1和nums元数相加和出现的次数(ab)。 3.遍历nums3和nums4,并求和(cd),统计出(0-(cd))在Map中出现的次数。 4.返回(0-(…

央企招聘:中国人民银行2023年度招聘启事

2023年中国外汇交易中心 博士后科研工作站招聘公告 中国外汇交易中心暨全国银行间同业拆借中心(以下简称“交易中心”)于1994年成立,是中国人民银行直属事业单位,为银行间外汇、货币、债券及其衍生产品提供交易、发行、基准及一线…

如何通过.exe文件控制一台电脑

CVE-2022-21999漏洞 如何实现发送一个.exe文件偷偷控制他人的电脑?这个想法很刑的,所以我只是说明我的实现方式,具体操作建议仅用于hvv等专业领域,请勿以身试法。 首先我们分析一下.exe文件的实际应用场景---windows系统的电脑&am…

11、setoolkit工具 构造钓鱼网站、powershell注入

靶机:192.168.11.105攻击机kail:192.168.11.1061.在kali中启动setoolkitsetoolkit2.利用SET构建钓鱼网站1)选择1 Social-Engineering Attacks (社会工程学攻击)2)选择2 Website Attack Vectors &#xff…

Spring Boot 概念、创建和运行 · Spring Boot 的优点 · 启动第一个 Spring Boot · Spring Boot 的注意事项

一、什么是 Spring Boot二、Spring Boot 优点三、Spring Boot 项目创建四、项目目录介绍和运行4.1 运行项目4.2 输出 Hello World五、注意事项5.1 包路径错误5.2 小结:约定大于配置六、总结一、什么是 Spring Boot Spring 的诞生是为了简化 Java 程序的开发的&…

GAMES101-现代计算机图形学入门-闫令琪 课程笔记 - 汇总(上)

一些前言与感慨: 学了再多的AI,终究还是没有办法拒绝计算机图形学的魅力。当初就不该一招不慎,踏入AI的坑。 可惜当年在学校里学计算机图形学的时候,还没有闫令琪这么好的课程,当时学得一知半解,云里雾里…

极市直播回放第106期丨阿里达摩院:兼顾速度与精度的高效目标检测框架DAMO-YOLO

阿里巴巴达摩院智能计算实验室团队设计并开源了一款兼顾速度与精度的目标检测框架DAMO-YOLO,其性能超越了目前的一众YOLO系列方法,在实现精度SOTA的同时,保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了MAE-NAS、efficient-RepGFPN…

cas:1628790-40-8|脂溶性Cyanine7-COOH|CY7-Carboxylic Acid

cas:1628790-40-8|脂溶性Cyanine7-COOH|CY7-Carboxylic Acid 名称:脂溶性Cyanine7-COOH|CY7-Carboxylic Acid cas:1628790-40-8 英文同义词: Cy7;Colpro;Prothil;R-13615;Cy7-COOH;CY7ACID;Cy7NHS;AY-62022;Cy7,>97%;Sulfo-Cyanine7 中文名称:磺基-CY7羧酸 …

【小甲鱼C语言】课后笔记第一章第四节——数据类型

目录 1、数据类型 2、short 和 long 3. sizeof 运算符 4. signed 和 unsigned 5、课后习题(编程题) 1、数据类型 在 C 语言里,所谓的数据类型就是坑的大小。我们说变量就是在内存里边挖一个坑,然后给这个坑命名。那么数据类型…

U盘格式化后能恢复数据吗?U盘删除的数据还能恢复吗

U盘格式化后能恢复数据吗?通常情况下,我们U盘里的数据丢失后,它们并没有立即消失,它们只是被系统做了一个标记,将数据存储的位置标记成可写入的状态,只有当新数据写入的时候,这个存储位置才会被…

USB转UART的桥接控制器 国产DPU02能不能软硬件兼容替换CP2102?

DPU02是一个高度集成的USB转UART的桥接控制器,可将RS-232设计更新为USB设计,并简化PCB组件空间。 该DPU02包括了一个USB 2.0全速功能控制器、USB收发器、振荡器、EEPROM和带有完整调制解调控制信号的异步串行数据总线(UART)控制器…

自动驾驶车辆安全保证机制-Mobileye的RSS模型

自动驾驶汽车(AV)将如何与人类司机安全地共享道路? 成功实现自动驾驶未来的最大威胁之一是对自动驾驶汽车安全驾驶的含义缺乏共识。只有当行业、政府和公众有一个共同的方式来理解和评估自动驾驶汽车(AV)的驾驶技能和安全,他们才会被信任,可以安全地与人类驾驶的车辆一起…

Go1.19.3 数组与切片原理简析

数组 Go语言数组,声明有如下几种方式: var arr1 [10]intarr1[0] 10000var arr2 [10]int{0:0,2:2}var arr3 [...]int{1,2,3}其中arr1只是进行声明,数组在声明时,内存空间已经被开辟过,所以可以赋值。arr2是声明的同…