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

【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)

本期目录

1 爬取思路

2 爬虫过程

2.1 网址

2.2 查看网页代码

3 爬取数据

3.1 导入包

3.2 爬取代码

01

爬取思路

     \*- 第一步,获取页面内容\*- 第二步:解析并获取单个项目链接  \*- 第三步:获取子页面内容  \*- 第四步:解析子页面相关信息  \*- 第五步:保存json格式数据

02

爬虫过程

2.1 网址

*- 网址``url = 'https://ssr1.scrape.center'``   ``*- 目标`  `爬取电影详情内容

2.2 查看网页代码

*- 网页源代码没有数据``*- 采取正常requests爬取

03

爬取数据

3.1 导入包

import requests``import re``import logging``from lxml import etree``import json``import multiprocessing

3.2 爬取代码

url = 'https://ssr1.scrape.center'``page = 10

*- 爬取函数

def scrape_page(url):`    `try:`        `response = requests.get(url)`        `if response.status_code ==200:`            `return response.text`        `logging.error(f'get invalid status_code{status_code} while scrape {url}')`    `except requests.RequestException:`        `logging.error(f'error occurred: {url}',exc_info = True)

*- 获取页面列表

def get_index_url(page):`    `index_url = f'{url}/page/{page}'`    `return scrape_page(index_url)

*- 解析列表页面获取单个网址:re

`def parse_index(html):`    `pattern = re.compile('<a.*?href="(.*?)".*?class="name">')`    `items = re.findall(pattern,html)`    `for item in items:``        detail_url = url+item`        `yield detail_url`    

*- 爬取子页面

def scrape_detail(url):`    `return scrape_page(url)

*- 解析子页面:xpath

def parse_detail(html):`    `tree = etree.HTML(html)`    `cover = ''.join(tree.xpath('//*[@id="detail"]/div[1]/div/div/div[1]/div/div[1]/a/img/@src')).replace('\n','').replace(' ','')`    `name = ''.join(tree.xpath('//*[@id="detail"]/div[1]/div/div/div[1]/div/div[2]/a/h2//text()')).replace('\n','').replace(' ','')`    `categories = ''.join(tree.xpath('//*[@id="detail"]/div[1]/div/div/div[1]/div/div[2]/div[1]//text()')).replace('\n','').replace(' ','')`    `published = ''.join(tree.xpath('//*[@id="detail"]/div[1]/div/div/div[1]/div/div[2]/div[2]//text()')).replace('\n','').replace(' ','')`    `drama = ''.join(tree.xpath('//*[@id="detail"]/div[1]/div/div/div[1]/div/div[2]/div[4]/p//text()')).replace('\n','').replace(' ','')`    `score = ''.join(tree.xpath('//*[@id="detail"]/div[1]/div/div/div[1]/div/div[3]/p[1]//text()')).replace('\n','').replace(' ','')`    `return {`        `'cover':cover,`        `'name':name,`        `'categories':categories,`        `'published':published,`        `'drama':drama,`        `'score':score`    `}

*- 数据保存

def save_data(data):`    `name = data.get('name')`    `data_path = f'ResultData/{name}.json'`    `json.dump(data,open(data_path,'w',encoding='utf-8'),ensure_ascii=False,indent=2)`    `print(f'{data_path}处理完成')

*- 主函数

def main():`    `for i in range(1,page+1):`        `index_html = get_index_url(i)`        `detail_urls = parse_index(index_html)`        `for detail_url in detail_urls:`            `detail_html = scrape_detail(detail_url)``            data = parse_detail(detail_html)`            `save_data(data)``   ``if __name__ == '__main__':`    `main()


最后学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
在这里插入图片描述
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
在这里插入图片描述
在这里插入图片描述
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述
五、100道Python练习题
检查学习结果。
在这里插入图片描述
在这里插入图片描述
最后,如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。
在这里插入图片描述

相关文章:

【Python】爬虫实战:高效爬取电影网站信息指南(涵盖了诸多学习内容)

本期目录 1 爬取思路 2 爬虫过程 2.1 网址 2.2 查看网页代码 3 爬取数据 3.1 导入包 3.2 爬取代码 01 爬取思路 \*- 第一步&#xff0c;获取页面内容\*- 第二步&#xff1a;解析并获取单个项目链接 \*- 第三步&#xff1a;获取子页面内容 \*- 第四步&#xff1a;解析…...

MATLAB和C++及Python流式细胞术

&#x1f335;MATLAB 片段 流式细胞术&#xff08;Flow Cytometry&#xff09;是一种用于分析细胞或其他颗粒悬浮在流动介质中的方法。MATLAB 可以用来处理和分析流式细胞术的数据&#xff0c;例如用于数据预处理、可视化和分析。以下是一些常见的 MATLAB 处理流式细胞术数据的…...

Vue3 pinia使用

Pinia 是一个现代的状态管理库&#xff0c;专为 Vue 3 设计。它提供了一种简单、直观的方式来管理应用中的全局状态 (就是不同组件都希望去共享的一些变量,函数等)。Pinia 的设计灵感来自于 Vuex&#xff08;Vue 2 的状态管理库&#xff09;&#xff0c;但进行了许多改进&#…...

tdengine学习笔记-建库和建表

目录 建库和建表 创建超级表​ 创建表​ 自动建表​ 创建普通表​ 多列模型 VS 单列模型​ 数据类型映射​ 示例程序汇总​ 在车联网领域的应用 1. 数据模型概述 2. 表结构设计 2.1 静态数据表 2.2 动态数据表 4. 查询数据 4.1 查询单个车辆的数据 4.2 查询多个…...

Django数据迁移出错,解决raise NodeNotFoundError问题

错误出现在&#xff1a; raise NodeNotFoundError(self.error_message, self.key, originself.origin) django.db.migrations.exceptions.NodeNotFoundError: Migration myApp.0003_alter_jobinfo_practise dependencies reference nonexistent parent node (myApp, 0002_renam…...

景联文科技:以全面数据处理服务推动AI创新与产业智能化转型

数据标注公司在人工智能领域扮演着重要角色&#xff0c;通过提供高质量的数据标注服务&#xff0c;帮助企业和组织训练和优化机器学习模型。从需求分析到数据交付&#xff0c;每一个步骤都需要严格把控&#xff0c;确保数据的质量和安全性。 景联文科技是一家专业的数据采集与标…...

MySQL学习/复习7表的内外连接

一、内连接...

Spring Cloud入门笔记2(OpenFeign)

场景&#xff1a; OpenFeign中集成了LoadBalancer,并简化了微服务调用&#xff0c;所以实际上使用该技术 技术栈&#xff1a;OpenFeign 步骤一&#xff1a;导入依赖 <!--openfeign--> <dependency><groupId>org.springframework.cloud</groupId><a…...

小程序中模拟发信息输入框,让textarea可以设置最大宽以及根据输入的内容自动变高的方式

<textarea show-confirm-bar"{{false}}" value"{{item.aValue}}" maxlength"301" placeholder"请输入" auto-height"{{true}}" bind:blur"onBlurTextarea" focus"{{true}}" bindinput"…...

学习HTML第二十九天

学习文章目录 二.单选框三.复选框 二.单选框 常用属性如下&#xff1a; name 属性&#xff1a;数据的名称&#xff0c;注意&#xff1a;想要单选效果&#xff0c;多个 radio 的 name 属性值要保持一致。 value 属性&#xff1a;提交的数据值。 checked 属性&#xff1a;让该单…...

汽车安全再进化 - SemiDrive X9HP 与环景影像系统 AVM 的系统整合

当今汽车工业正面临著前所未有的挑战与机遇&#xff0c;随著自动驾驶技术的迅速发展&#xff0c;汽车的安全性与性能需求日益提高。在这样的背景下&#xff0c;汽车 AVM&#xff08;Automotive Visual Monitoring&#xff09;标准应运而生&#xff0c;成为促进汽车智能化和安全…...

QString 转 char*问题与方法(const_cast的使用问题)

1、背景:今天有QString的变量&#xff0c;将QString的值传递给void func(char * ptr)&#xff0c;于是就有了类似下面这一段离谱的代码 当时我还在想为什么var的值为空了&#xff0c;为什么呢。 2、原因:就是因为右边函数返回的是一个临时指针对象&#xff0c;给到了右边&…...

flink cdc 应用

SQLServer 1. The db history topic or its content is fully or partially missing. Please check database history topic configuration and re-execute the snapshot. 遇到了一下问题&#xff0c;多次尝试&#xff0c;最终发现是数据库大小写要一致。 Caused by: io.deb…...

MyBlog(三) -- APP的应用

文章目录 前言一、APP是什么?二、创建APP三、使用APP1. 注册app2. 添加路由3. 运行过程4. 完善视图函数5. 结果展示 总结 前言 前面我们已经学习了如何创建一个新的项目,并且配置好了项目的启动文件,成功将项目启动! 那么接下来我们的主要任务就是需要完善这个项目中应该包含…...

docker有哪些网络模式

Docker 提供了多种网络模式&#xff08;Networking Modes&#xff09;&#xff0c;每种模式都有其特定的用例和优缺点。以下是 Docker 的几种主要网络模式&#xff1a; 1. Bridge 网络&#xff08;默认&#xff09; 描述&#xff1a;在这种模式下&#xff0c;Docker 创建了一…...

npoi 如何设置单元格为文本类型

ICellStyle style workbook.CreateCellStyle(); var font workbook.CreateFont(); font.FontHeightInPoints 10; //font.FontName "Arial"; font.FontName "仿宋"; style.Alignment NP…...

Vue3、Vite5、Primevue、Oxlint、Husky9 简单快速搭建最新的Web项目模板

Vue3、Vite5、Oxlint、Husky9 简单搭建最新的Web项目模板 特色进入正题创建基础模板配置API自动化导入配置组件自动化导入配置UnoCss接入Primevue接入VueRouter4配置项目全局环境变量 封装Axios接入Pinia状态管理接入Prerttier OXLint ESLint接入 husky lint-staged&#xf…...

DataStream编程模型之数据源、数据转换、数据输出

Flink之DataStream数据源、数据转换、数据输出&#xff08;scala&#xff09; 0.前言–数据源 在进行数据转换之前&#xff0c;需要进行数据读取。 数据读取分为4大部分&#xff1a; &#xff08;1&#xff09;内置数据源&#xff1b; 又分为文件数据源&#xff1b; socket…...

海康IPC接入TRTC时,从海康中获取的数据显示时色差不正确

2021/1 记录海康IPC接入TRTC时的历史日志 从海康sdk接口获取数据&#xff0c;进行解码 org.MediaPlayer.PlayM4.Player.T_YV12;private void setDecodeCB() {Player.getInstance().setDecodeCB(m_iPort, (nPort, data, nDataLen, nWidth, nHeight, nFrameTime, nDataType,…...

『VUE』31. 生命周期的应用(详细图文注释)

目录 在合适的时间进行操作取dom元素利用生命周期模拟网络数据发送代码示例 总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 在合适的时间进行操作 假设网页一颗果树,我们要取dom(果实),一定要在渲染完成后才能取(果实) 通常…...

UI-TARS-desktop效果实测:响应速度快,识别准,桌面助手超实用

UI-TARS-desktop效果实测&#xff1a;响应速度快&#xff0c;识别准&#xff0c;桌面助手超实用 1. 产品概览与核心能力 UI-TARS-desktop是一款基于Qwen3-4B-Instruct-2507模型的轻量级AI桌面助手应用&#xff0c;通过vLLM推理服务提供快速响应。这款开源的多模态AI代理集成了…...

C/C++中备受争议却难以替代的goto语句:效率与可读性的博弈

1. goto语句的前世今生 在C/C的世界里&#xff0c;goto就像是个"老古董"——它从1950年代的Fortran语言一路走来&#xff0c;至今仍在某些角落发光发热。我第一次在Linux内核代码里看到密密麻麻的goto时&#xff0c;整个人都懵了&#xff1a;这玩意儿不是教科书上明令…...

Hunyuan-MT-7B在学术论文翻译中的精准应用

Hunyuan-MT-7B在学术论文翻译中的精准应用 1. 学术翻译的痛点与挑战 学术论文翻译从来都不是简单的文字转换工作。想象一下&#xff0c;你辛辛苦苦写好的论文&#xff0c;里面充满了专业术语、复杂公式和严谨的参考文献&#xff0c;如果翻译时出现偏差&#xff0c;整个研究的…...

OpenClaw学术研究助手:Qwen3-32B驱动的论文摘要与笔记整理

OpenClaw学术研究助手&#xff1a;Qwen3-32B驱动的论文摘要与笔记整理 1. 为什么需要本地化的AI研究助手&#xff1f; 去年冬天&#xff0c;我在整理一个跨学科研究项目的文献时陷入了困境。手头堆积了200多篇PDF论文&#xff0c;每篇都需要提取核心观点、记录关键数据&#…...

OpenClaw跨平台部署:Qwen3.5-9B在mac/Windows/Linux下的差异处理

OpenClaw跨平台部署&#xff1a;Qwen3.5-9B在mac/Windows/Linux下的差异处理 1. 为什么需要关注跨平台差异&#xff1f; 去年我在帮团队搭建自动化办公流程时&#xff0c;发现一个有趣的现象&#xff1a;同样的OpenClaw配置脚本&#xff0c;在同事的MacBook上运行流畅&#x…...

5分钟搞定多聚焦图像融合:从数据集到评价指标全流程指南

5分钟搞定多聚焦图像融合&#xff1a;从数据集到评价指标全流程指南 多聚焦图像融合技术正逐渐成为计算机视觉领域的热门研究方向。这项技术通过将多张聚焦区域不同的图像合成为一张全清晰的图像&#xff0c;解决了单次拍摄无法同时捕捉场景中所有物体清晰细节的难题。对于刚接…...

照着用就行:全学科适配的降AIGC工具 千笔·专业降AI率智能体 VS PaperRed 一站式解决降重难题

随着AI技术的迅猛发展&#xff0c;学术写作中对AI生成内容的识别能力也在不断提升&#xff0c;许多学生和研究者发现&#xff0c;原本依赖AI辅助撰写的论文&#xff0c;如今在查重系统中频频被标记出高AIGC率&#xff0c;甚至影响最终成绩。这种现象不仅让许多人措手不及&#…...

在AutoDL云平台用RTX 4090快速训练你的LeRobot机械臂模型:完整配置与成本分析

在AutoDL云平台用RTX 4090快速训练你的LeRobot机械臂模型&#xff1a;完整配置与成本分析 当个人开发者或小型团队面临本地算力不足的困境时&#xff0c;云端GPU资源成为快速验证机器人学习算法的理想选择。AutoDL等云平台提供的RTX 4090实例&#xff0c;以其24GB显存和卓越的并…...

ElasticJob HTTP作业:RESTful接口调度的终极指南

ElasticJob HTTP作业&#xff1a;RESTful接口调度的终极指南 ElasticJob是ShardingSphere生态中一款分布式任务调度解决方案&#xff0c;它提供了丰富的作业类型支持&#xff0c;其中HTTP作业是实现跨系统任务调度的理想选择。通过HTTP作业&#xff0c;您可以轻松实现基于REST…...

屏幕水印是什么?有啥用?如何设置屏幕水印?「干货图文教程」

屏幕水印是什么&#xff1f;屏幕水印&#xff0c;就是在电脑屏幕上显示的文字、图案或标志&#xff0c;就像在纸上盖章一样&#xff0c;但它出现在你的屏幕上。它可以帮助你在处理敏感信息时&#xff0c;增加一层额外的安全保护。屏幕水印有啥用&#xff1f;屏幕水印在企业信息…...