【scrapy】1.scrapy爬虫入门

news2024/11/16 13:53:32

一、scrapy爬虫框架

Scrapy 框架是一个基于Twisted的一个异步处理爬虫框架,应用范围非常的广泛,常用于数据采集、网络监测,以及自动化测试等。

scrapy框架包括5个主要的组件:

Scheduler:事件调度器,它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
Downloader:下载器,接收Scrapy Engine(引擎)发送的所有Requests请求,从网上下载数据,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理
Spiders:爬虫,发起爬虫请求,并解析DOWNLOADER返回的网页内容,同时和数据持久化进行交互,需要开发者编写
Item Pipeline:实体管道,它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方,需要开发者编写
Engine:Scrapy引擎,负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。

图来源: Scrapy爬虫框架,入门案例(非常详细)_scrapy爬虫案例python-CSDN博客

 从上可知,我们只要实现SPIDERS(要爬什么网站,怎么解析)和ITEM PIPELINES(如何处理解析后的内容)就可以了。其他的都是有框架帮你完成了。

二、XPath基础

通过XPath来解析网页,提取内容

1 HTML节点和属性

2 解析语法

(1)a / b:‘/’在 xpath里表示层级关系,左边的 a是父节点,右边的 b是子节点

(2)a // b:表示a下所有b,直接或者间接的

(3)[@]:选择具有某个属性的节点

例如://div[@classs], //a[@x]:选择具有 class属性的 div节点、选择具有 x属性的 a节点

          //div[@class="container"]:选择具有 class属性的值为 container的 div节点

(4)//a[contains(@id, "abc")]:选择 id属性里有 abc的 a标签

示例代码;

response.xpath('//div[@class="taglist"]/ul//li//a//img/@data-original').get_all()
# 获取所有class属性(css)为taglist的div, 下一个层ul下的所有li下所有a下所有img标签下data-original属性

# data-original这里放的是图片的url地址

更多详见XML数据定位神器:详解XPath语法大全以及使用方法 - 知乎

三、安装部署

pip install scrapy

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

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

相关文章

Unix-privesc-check一键检查 Unix 系统(KALI工具系列三十一)

目录 1、KALI LINUX 简介 2、Unix-privesc-check简介 3、使用对象 4、操作实例 4.1 快速扫描 4.2 检测特定列表 4.3 详细模式 4.4 扫描结果解读 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版 ,广泛用于网络安全社区。它…

小白篇--如何在本地搭建 go环境

前言 Go语言的优势主要体现在其简洁、高效、并发性能、跨平台支持、强大的社区支持以及在云计算和多核CPU时代的高效算子处理能力。 简洁:Go语言的设计哲学是“少即是多”,其遵循简单和清晰的原则,使得代码简洁明了,易于理解和维…

GPT-5智能新纪元的曙光

在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述为高中生到博士生的成长。 这一爆炸性的消息,震动了整体…

木材容易发霉怎么办除霉处理方法

木材存放不当就容易出现发霉情况,那么可通过那些方法将木材表面的霉斑除掉呢?经ihaoer防霉人士介绍处理木材发霉处理方法如下: 木材发霉的原因主要包括木材本身的营养物质、环境湿度、温度以及空气流动性等因素。木材中含有蛋白质、淀粉、油类…

SpringBoot优点达项目实战:项目基本配置(二)

SpringBoot优点达项目实战:项目基本配置(二) 文章目录 SpringBoot优点达项目实战:项目基本配置(二)1、项目初始化配置2、MyBatisPlus配置3、Knife配置4、定义统一返回数据结构 1、项目初始化配置 创建appli…

【期末复习】计算机组成原理

海明码 最通俗的海明码计算方法,不需记公式,套步骤即可(可能都不需要理解) https://www.bilibili.com/video/BV1tL4y1h7Fd/ 接上一海明码视频(海明码的纠错) https://www.bilibili.com/video/BV1tf4y1A7NX/…

探索 Screen:一个强大的终端复用工具

在日常的系统管理和开发工作中,我们经常需要同时运行多个终端任务,或者需要在一个终端会话中保持任务的持续运行,即使我们断开了与服务器的连接。这时,screen 命令就成为了一个非常有用的工具。本文将详细介绍 screen 的功能、使用…

二叉树 | Java | LeetCode 235 701 450 做题总结,BST特性、 调整二叉树结构(增+删)

235. 二叉搜索树的最近公共祖先 思路:要利用二叉搜索数的性质。当前遍历节点 cur 的数值大于p q时,说明 p q 的父节点在 cur 的左子树。当前遍历节点 cur 的数值小于p q时,说明 p q 的父节点在 cur 的右子树。当前遍历节点 cur 的数值在 p q…

替代TPS7H1101A-SP抗辐射7V/3A大电流低压差稳压器|具有可并联使用达6A电流

1. 产品特性 ➢ 超低电压输入: 1.5V~7V ➢ 最大输出电流: 3A ➢ 电压精度: 1.25% ➢ 超低压降: 62mV1A(Vout1.8V, 25℃) ➢ 超低噪声: 20.33μVRMS(BW10Hz-100kHz&a…

【Python机器学习】聚类算法的对比与评估——在没有真实值的情况下评估聚类

在实践中,使用诸如ARI之类的指标有一个很大的问题。在应用聚类算法时,通常没有真实值来比较结果。如果我们知道了数据的正确聚类,那么可以使用这一信息构建一个监督模型(比如分类器)。因此,使用类似ARI和NM…

springboot微信点餐小程序-计算机毕业设计源码82910

目 录 摘要 1 绪论 1.1 项目开发背景 1.2目的和意义 1.3springboot框架介绍 2 微信点餐小程序系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 …

AIGC->基于扩散模型的图像生成算法 (课程大纲)

https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507https://edu.csdn.net/course/detail/39618?spm=1001.2014.3001.5507 课程特色是围绕着工作中AIGC文生图的具体用途来对文生图领域进行一个高屋建瓴式的分析,结合具体的应用,尤其是产业界的具体实用场景,…

django图书推荐系统-计算机毕业设计源码89399

摘 要 随着时代的不断更新,社会的不断变换,信息技术的飞速发展,计算机科技技术也逐步走向成熟。图书推荐系统对于当今社会来说是必不可少的一个信息组成部分,它可以管理大量图书、大量读者、让读者有条不紊的进行评分图书&#xf…

ruoyi-vue-plus中使用minio

minio windwos中安装使用: 1、安装 minio下载页面 2、启动:ruoyi-vue-plus: 配置管理:

哈啰集团全面接入通义灵码,AI 生成代码占比 20%,研发提效 12%

6 月 21 日,在阿里云 AI 智领者峰会上海站,哈啰集团算法总监贾立宣布, 哈啰集团已全面接入阿里云通义灵码专属版, 不仅提升了内部研发效率,实现 AI 代码采用率超过 20%,还将灵码接入了哈啰自研 Copilot “海…

JSAPI微信支付提示缺少total_fee

微信小程序云开发中使用微信支付。莫名其妙的报错: 这个报错严重图文不符,驴唇不对马嘴,难排查,很恶心。 原因可能是: 1、在微信支付中关联appid; 2、在小程序云开发控制台中授权:

SecureCRT使用方法(非常简单)!!!

一、简单了解 SecureCRT是一款功能强大的终端仿真软件,广泛用于远程访问和管理服务器。它提供了丰富的功能和安全性,使得远程连接更加简单、高效和可靠。 SecureFX 可以提供安全文件传输。主要用于Linux操作系统客户端文件传输程序,该客户端…

刷题记录6.24

438. 找到字符串中所有字母异位词https://leetcode.cn/problems/find-all-anagrams-in-a-string/ 这道题乍一看感觉很复杂。因为 异位词指由相同字母重排列形成的字符串,包括相同的字符串,那么就会有很多种组成,增加题目的复杂性。 对于这个…

微信小程序修改应用名称

1、修改名称(10分钟即可生效) 账号管理员 2、修改icon(如果logo带有名称则需要修改)

【单片机毕业设计选题24025】-基于ESP32的车联网控制器设计

系统功能: 这个设计采用ESP32芯片作为核心控制器,搭配其它传感器,电源模块以及通信模块,用于实现车联网中的MQTT数据收发控制. ESP32芯片负责接收电路模块和相关传感器的数据,包括模拟信号,按键触发信号等, 随后ESP32进行数据处理并通过MQTT协议与通信模块协同工作将数据上传至…