爬虫自动调用shell通过脚本运行scrapy爬虫(crawler API)

ops/2024/9/23 10:20:24/

一、爬虫时如何同时调用shell

1)终端cd项目>>scrapy crawl example

2)打开example.py

python">import scrapy
from scrapy.shell import inspect_response#引入shellclass ExampleSpider(scrapy.Spider):name = "example"allowed_domains = ["example.com"]start_urls = ["https://example.com"]def parse(self, response):inspect_response(response,self)#调用parse函数时调用shellpass

3)终端cd项目>>scrapy crawl example

运行结果:终端运行完会转到shell端

4)退出shell:

>>ctrl+d 

二、用脚本调用scrapy 

1、补充知识:

一、脚本(script):脚本通常是可直接执行的代码段,由其自身运行。脚本中一般不包含类、函数等
二、模块(module):模块里面定义了各种函数和类。任何Python模块都可以作为脚本执行。
三、包(package):装了一个__init__.py,且含有多个模块的文件夹子。包的本质依然是模块
四、库(library):一个库中可能有多个包,可视为一个完整的项目打包,直接调用或者运行,

2、动态配置API,建立scrapy(免建项目project)

API( Application Programming Interface),它能够帮你实现轻松的和其他软件组件(如服务器,操作系统等)的交互

2.1 scrapy genspider crawl2

2.2修编crawl2.py(代码如下)

2.3python crawl2.py

python">import scrapy
from scrapy.crawler import CrawlerProcess
#from scrapy.utils.project import get_project_settings
#process = CrawlerProcess(get_project_settings())class Crawl2Spider(scrapy.Spider):name = "crawl2"allowed_domains = ["tianqi.2345.com"]start_urls = ["https://tianqi.2345.com"]def start_requests(self):return [scrapy.Request(url=self.start_urls[0], callback=self.parse)]  #def parse(self, response):print(response.url)process = CrawlerProcess({"User-Agent":'Mozilla/5.0 (compatible;'''''')})
process.crawl(Crawl2Spider)
process.start()

运行结果:

3、通过脚本运行project

Core API — Scrapy 2.11.1 documentation(源文档参考)

(在项目根目录新建一个crawlspiderman.py文件,运行即可完成一次project的爬虫调用运行,不用再进终端run)

python">from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settingsprocess = CrawlerProcess(get_project_settings())#调用项目内settings
process.crawl('famousquotes') #这里调用上一章已有的爬虫文件
process.start()#执行

运行结果:


http://www.ppmy.cn/ops/33776.html

相关文章

C# WinForm —— 12 ListBox绑定数据

ListBox加载大量数据时,避免窗体闪烁的方法: 在加载语句的前后分别加上 BeginUpdate()方法 和 EndUpdate()方法 指定一个集合为绑定的数据源 1. 首先,右键项目,添加类 2. 在新建的类文件中添加属性值信息 3. 构建初始化的对象…

【论文阅读】Learning Texture Transformer Network for Image Super-Resolution

Learning Texture Transformer Network for Image Super-Resolution 论文地址Abstract1. 简介2.相关工作2.1单图像超分辨率2.2 Reference-based Image Super-Resolution 3. 方法3.1. Texture TransformerLearnable Texture Extractor 可学习的纹理提取器。Relevance Embedding.…

EPAI手绘建模APP资源管理和模型编辑器2

g) 矩形 图 26模型编辑器-矩形 i. 修改矩形的中心位置。 ii. 修改矩形的长度和宽度。 h) 正多边形 图 27模型编辑器-内接正多边形 图 28模型编辑器-外切正多边形 i. 修改正多边形的中心位置。 ii. 修改正多边形中心距离端点的长度。 iii. 修改正多边形的阶数。阶数为3&…

MySql的基本操作

一、连接数据库,查看对象,数据库的维护,mysql的数据类型 1、连接数据库 mysql -hlocalhost -uroot -proot 2、查看对象 show databases; 查看有哪些数据库 show tables;查看有哪些表 show columns from [table_name];查看表里有哪些字段…

Springboot工程创建

目录 一、步骤 二、遇到的问题及解决方案 一、步骤 打开idea,点击文件 ->新建 ->新模块 选择Spring Initializr,并设置相关信息。其中组为域名,如果没有公司,可以默认com.example。点击下一步 蓝色方框部分需要去掉,软件包…

浅谈OpenCV 粗略计算工件轮廓面积和外接圆直径(Emgu.CV)

前言 最近领导在做库房工具管理这块的功能,希望能集成OpenCV 粗略的计算出工具的长度,以方便用户再归还工具的时候,提示用户该放在那种尺寸的盒子里面,这便是这篇文章的由来。 我们的系统是基于.net开发的,所以采用的是…

CSS中不固定大小的图片怎样做到在所在的块元素里垂直居中

对于不固定大小的图片,在块元素中实现垂直居中可以有多种方法。以下是一些常用的方法: 使用Flexbox(弹性盒子): Flexbox 是一个非常强大的布局工具,可以轻松实现元素的垂直居中。你只需要将块元素设置为 flex 容器&a…

Ubuntu系统重装

1、删除相关卷,ubuntu引导项(select disk、assign letter的方法) Ubuntu20.04重装系统过程(多图,含保存文件卸载旧系统安装新系统)_ubuntu重装系统-CSDN博客 2、分配空间 efi 1024MB 逻辑分区 swap 8*1…