Scrapy爬虫异步框架(一篇文章齐全)

2023-11-27 10:52

本文主要是介绍Scrapy爬虫异步框架(一篇文章齐全),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、Scrapy框架初识

2、Scrapy框架持久化存储(点击前往查阅)

3、Scrapy框架内置管道(点击前往查阅)

4、Scrapy框架中间件(点击前往查阅)

Scrapy 是一个开源的、基于Python的爬虫框架,它提供了强大而灵活的工具,用于快速、高效地提取信息。Scrapy包含了自动处理请求、处理Cookies、自动跟踪链接、下载中间件等功能。

Scrapy框架的架构图(先学会再来看,就能看懂了!)

一、安装

在Pycharm终端中使用以下命令安装 Scrapy:

pip install scrapy

二、创建 Scrapy 项目

在Pycharm终端中使用以下命令创建一个 Scrapy 项目:

scrapy startproject project_name

其中 project_name 是你文件夹的名字文件名只能以字母开头,只能包含数字、字母、下划线),下面是创建好的目录结构(.venv 这个文件无视,这个是我配置的虚拟环境,这个地方不做多讲解,想了解点击这:虚拟环境讲解)。

三、创建爬虫项目

在Pycharm终端中使用以下命令创建一个 Scrapy 项目:

scrapy genspider spider_name example.com

命令讲解:

  •  spider_name:是你的爬虫文件名(名字不能和scrapy项目重复
  • example.com:初始设置的网址(这个随便填写,等下可以改的,可以设置www.xxx.com)

注意:需要先进入你创建的Scrapy项目中,例如:我这个文件名是:CSDN

对比下绿色横线的文件目录就发现不一样了。

⬇️⬇️⬇️执行的命令演示⬇️⬇️⬇️

3.1:创建好的目录结构

 四、编写爬虫

4.1:setting设置

设置 setting 中需要改动的地方(这个是基本的设置,其他的根据需要来开启)

4.2:代码初识

打开创建好的爬虫文件(baidu.py)进入编写我们的程序:

初始的是这样的

代码的含义:          

4.3:数据解析(parse函数)

演示网站:(不可干预人家网站的正常运行!!!家常菜做法大全有图_家常菜菜谱大全做法_好吃的家常菜_下厨房【下厨房】家常菜栏目为您提供最新的家常菜做法大全、家常菜菜谱大全和步骤,让你也可以轻松做出好吃的家常菜icon-default.png?t=N7T8https://www.xiachufang.com/category/40076/

需求:第一页的所有的菜名和作者

最终代码:

import scrapyclass BaiduSpider(scrapy.Spider):# 爬虫文件的唯一标识(就是你创建的爬虫文件夹名字)name = "baidu"# 允许的域名,这个代表你只能访问这个网址的子域名,其他的都会禁止(这个我们会注释掉,不会打开)# allowed_domains = ["www.xxx.com"]# 起始的url列表,网址可以随便放,可以放多个,列表中的url都会被框架进行异步请求发送。start_urls = ["https://www.xiachufang.com/category/40076/"]# 数据解析:parse调用的次数取决于start_urls列表元素的个数def parse(self, response):  # response参数就表示响应对象# 利用xpath解析:(scrapy内置xpath,无需另外导入)li_list = response.xpath('//div[@class="pure-u-3-4 category-recipe-list"]//ul/li')for li in li_list:# 1、scrapy中的xpath会返回Selector对象,我们需要的数据在该对象data属性中(extract可以实现该功能,)# 2、extract_first()就是取第一个,因为文本两边有空格,所以.strip() 可以去除两侧的空格title = li.xpath('.//p[1]/a/text()').extract_first().strip()author = li.xpath('.//p[4]/a/text()').extract_first().strip()print(title, author)

输出结果:

五、运行爬虫

使用以下命令运行你的 Scrapy 爬虫:

scrapy crawl myspider

命令讲解

  • myspider:你的爬虫文件名字(例如我的是:baidu)

这篇关于Scrapy爬虫异步框架(一篇文章齐全)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427534

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

Python使用asyncio实现异步操作的示例

《Python使用asyncio实现异步操作的示例》本文主要介绍了Python使用asyncio实现异步操作的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录1. 基础概念2. 实现异步 I/O 的步骤2.1 定义异步函数2.2 使用 await 等待异

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

Python中的异步:async 和 await以及操作中的事件循环、回调和异常

《Python中的异步:async和await以及操作中的事件循环、回调和异常》在现代编程中,异步操作在处理I/O密集型任务时,可以显著提高程序的性能和响应速度,Python提供了asyn... 目录引言什么是异步操作?python 中的异步编程基础async 和 await 关键字asyncio 模块理论

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟