【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道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。
在这里插入图片描述

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

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

相关文章

SpringBoot多文件上传

多文件上传是在单文件上传的基础上修改而来&#xff0c;不了解单文件上传可以参考上一篇。以下在将修改部分展示如下&#xff1a; 一、修改upload.html文件&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title&g…

[RabbitMQ] 重试机制+TTL+死信队列

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s&#xff08;一&#xff09;搭建-CSDN博客&#xff0c;这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target&#xff0c;可以看到metrics的数据来源&#xff0c;即各…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05目录1. LLM App Squatting and Cloning2. Improving Grapheme-to-Phoneme Conversion through In-Context Knowledge3. A Comp…

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;以及通过理论课学习与实验参考书的帮助&#xff0c;熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作&#xff1b;作为后续实验的基础&#xff0c;根据实验要求重…

LDR6020驱动的Type-C接口显示器解决方案

一、引言 随着科技的飞速发展&#xff0c;Type-C接口凭借其高速数据传输、强大的电力传输能力以及便捷的正反可插设计&#xff0c;正逐渐成为现代电子设备的主流接口标准。在显示器领域&#xff0c;Type-C接口的引入不仅简化了线缆连接&#xff0c;还为用户带来了更丰富的功能…

Spring |(四)IoC/DI配置管理第三方bean

文章目录 &#x1f4da;数据源对象管理&#x1f407;环境准备&#x1f407;实现Druid管理&#x1f407;实现C3P0管理 &#x1f4da;加载properties文件&#x1f407;第三方bean属性优化&#x1f407;读取单个属性 学习来源&#xff1a;黑马程序员SSM框架教程_SpringSpringMVCMa…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后&#xff0c;内部的微服务之间是互联互通的&#xff0c;相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能&#xff0c;也采取点对点的方式&#xff0c;则外部系统会非常“头大”。因为在外部系统看来&#xff0c;它不需要也没…

(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下&#xff0c;开发一…

社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动

摘要&#xff1a;本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨&#xff0c;剖析国家政策认可下其学科发展前景&#xff0c;着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序&#xff0c;探究如何借助这些新…

Linux各种并发服务器优缺点

本文旨在介绍针对“无并发C/S模型”改进的方法总结以及各种改进方法的优缺点&#xff0c;具体函数的实现并不介绍。 1. 无并发C/S模型 创建服务器流程分析&#xff1a; socket()创建服务器的监听套接字bind()将服务器给服务器的监听套接字绑定IP地址和Port端口号listen()设置…

基于AXI PCIE IP的FPGA PCIE卡示意图

创作不易&#xff0c;转载请注明出处&#xff1a;https://blog.csdn.net/csdn_gddf102384398/article/details/143926217 上图中&#xff0c;在FPGA PCIE卡示意图内&#xff0c;有2个AXI Master设备&#xff0c;即&#xff1a;PCIE到AXI4-Full-Master桥、AXI CDMA IP&#xff1…

【漏洞复现】|智互联SRM智联云采系统quickReceiptDetail SQL注入漏洞

漏洞描述 智互联(深圳)科技有限公司SRM智联云采系统针对企业供应链管理难题&#xff0c;及智能化转型升级需求&#xff0c;智联云采依托人工智能、物联网、大数据、云等技术&#xff0c;通过软硬件系统化方案&#xff0c;帮助企业实现供应商关系管理和采购线上化、移动化、智能…

el-table-column自动生成序号在序号前插入图标

实现效果&#xff1a; 代码如下&#xff1a; 在el-table里加入这个就可以了&#xff0c;需要拿到值可以用scope.$index ​​​​​​​<el-table-column type"index" label"序号" show-overflow-tooltip"true" min-width"40">…

如何利用 Puppeteer 的 Evaluate 函数操作网页数据

介绍 在现代的爬虫技术中&#xff0c;Puppeteer 因其强大的功能和灵活性而备受青睐。Puppeteer 是一个用于控制 Chromium 或 Chrome 浏览器的 Node.js 库&#xff0c;提供了丰富的 API 接口&#xff0c;能够帮助开发者高效地处理动态网页数据。本文将重点讲解 Puppeteer 的 ev…

“小浣熊家族AI办公助手”产品体验 — “人人都是数据分析师”

一、引言&#xff1a; 大家平时应该在工作中常常使用到Excel来做数据统计&#xff0c;比如临近过年时&#xff0c;公司一般会开各种复盘、年终、检讨、明年规划大会&#xff0c;势必需要准备一大堆的量化数据报表&#xff0c;用于会议上的数据汇报、分析工作&#xff0c;试想一…

Unity-添加世界坐标系辅助线

如果你想在场景中更直观地显示世界坐标系&#xff0c;可以通过编写一个简单的脚本来实现。下面是一个基本的示例脚本&#xff0c;它会在场景中绘制出世界坐标系的三个轴&#xff1a; using UnityEngine;public class WorldAxesIndicator : MonoBehaviour {public float length…

Makefile基础应用

1 使用场景 在Linux环境下&#xff0c;我们通常需要通过命令行来编译代码。例如&#xff0c;在使用gcc编译C语言代码时&#xff0c;需要使用以下命令。 gcc -o main main.c 使用这种方式编译代码非常吃力&#xff0c;每次调试代码都需要重新在命令行下重新编译&#xff0c;重复…

【tensorflow的安装步骤】

创建一个虚拟环境 conda create -n tensorflow python3.6激活虚拟环境 conda activate tensorflow使用镜像源下载 pip install tensorflow1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/特别特别重要的点&#xff01;&#xff01;&#xff01; 别用WiFi或者校园网下…

【Python · PyTorch】循环神经网络 RNN(基础概念)

【Python PyTorch】循环神经网络 RNN&#xff08;基础概念&#xff09; 0. 生物学相似性1. 概念2. 延时神经网络&#xff08;TDNN&#xff09;3. 简单循环神经网络&#xff08;Simple RNN&#xff09;3.1 BiRNN 双向循环神经网络3.2 特点记忆性参数共享图灵完备 3.3 网络结构3…