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

news2024/10/7 12:25:02

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

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

2)打开example.py

import scrapy
from scrapy.shell import inspect_response#引入shell

class ExampleSpider(scrapy.Spider):
    name = "example"
    allowed_domains = ["example.com"]
    start_urls = ["https://example.com"]

    def parse(self, response):
        inspect_response(response,self)#调用parse函数时调用shell
        pass

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

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)

from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

process = CrawlerProcess(get_project_settings())#调用项目内settings
process.crawl('famousquotes') #这里调用上一章已有的爬虫文件
process.start()#执行

运行结果:

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

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

相关文章

【EI会议|稳定检索】2024年传感技术与图像处理国际会议(ICSTIP 2024)

2024 International Conference on Sensing Technology and Image Processing 一、大会信息 会议名称:2024年传感技术与图像处理国际会议会议简称:ICSTIP 2024收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等会议官网:htt…

开源代码分享(26)-考虑预测不确定性的综合能源调度优化

参考文献: [1]崔杨,周慧娟,仲悟之,等.考虑源荷两侧不确定性的含风电电力系统低碳调度[J].电力自动化设备,2020,40(11):85-93.DOI:10.16081/j.epae.202009019. 1.基本原理 考虑碳交易机制能够有效提高风电消纳量,但是随着风电并网容量的增大&#xff0c…

【酱浦菌-爬虫项目】python爬取彼岸桌面壁纸

首先,代码导入了两个库:requests和parsel。这些库用于处理HTTP请求和解析HTML内容。 然后,它定义了一个变量url,指向网站’樱花2024年4月日历风景桌面壁纸_高清2024年4月日历壁纸_彼岸桌面’。 接下来,设置了一个HTT…

每天五分钟玩转深度学习PyTorch:创建pytorch中的零维标量tensor

标量是什么? tensor张量是一个多维数组,零维就是一个点(就是本章的标量),一维就是向量,二维就是一般的矩阵,多维就相当于一个多维的数组,这和 numpy理解是一样的,不同的是Tensor不仅可以在CPU上跑,在GPU上也可以跑。 标量(scalar),只具有数值大小,而没有方向,…

QT 开发COM(ActiveX)组件基础介绍和方案验证

一、COM简介 1.1 COM是什么? COM,Component Object Model,即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。COM 既提供了组件之间进行交互的规范,也…

【matplot】【matlab】绘制简洁美观二维坐标系的一个例子

觉得下图不错美观大方,现仿制下图: import numpy as np import matplotlib.pyplot as pltdef sigmoid(x):return 1 / (1 np.exp(-x))def sigmoid_derivative(x):return sigmoid(x) * (1 - sigmoid(x))# 设置中文字体 plt.rcParams[font.family] [Tim…

使用opencv改变图片大小

使用opencv改变图片大小 图片的宽度和高度效果代码 图片的宽度和高度 宽度:图片的宽度指的是图像从左边缘到右边缘的水平跨度。在数字图像中,宽度通常是以像素(pixels)为单位来度量的。高度:图片的高度指的是图像从上…

面试中算法(最小栈)

最小栈的实现 实现一个栈,该栈有出栈(pop)、入栈(push)、取最小元素(get_min) 。要保证时间复杂度都是O (1)。 第1步:设原有的栈叫作栈A,额外的“备胎”栈B,用于辅助栈A。 当第1个元素进入栈A时&#xff0c…

“科技让广告更精彩”四川迈瑞斯文化传媒有限公司 行业领先的一站式媒体采购供应平台

国际数字影像产业园与园区企业一同推动数字影像技术的创新与发展,为数字影像产业注入新的活力。其中,四川迈瑞斯文化传媒有限公司(906)作为数字媒体行业的优秀企业,坚持“科技让广告更精彩”的理念,致力于为…

谷歌浏览器查看http请求的请求标头和响应标头

http://t.weather.itboy.net/api/weather/city/101010100 记得刷新,才算请求了一次服务器 响应标头: HTTP/1.1 200 OK Content-Type: application/json; 请求标头: GET /api/weather/city/101010100 HTTP/1.1 Host: t.weather.itboy.n…

Spark持久化、broadcast广播变量和accumulator累加器

持久化操作 什么是持久化,为什么要持久化 Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当您持久化RDD时,每个节点将其计算的任何分区存储在内存中,并在该数据集(或从该数据集派生的数…

Arcgis Pro 制图基础操作流程

为什么推荐用Arcgis Pro 出图? 1、相比Arcmap 10.X,Pro的制图功能更强大,制图更便捷 2、相比PS,Arcgis Pro中的数据自带坐标,无需校正,表达更准确 3、自带底图,方便又美观 01 — 与Arcmap …

Objective-C大爆炸:从零到单例模式

oc学习笔记(一) 文章目录 oc学习笔记(一)oc与c语言的区别#import的用法foundation框架NSLog函数NSString类型符号的作用oc中的数据类型 类与对象概念: 创建第一个类类的定义类的实现类加载对象的产生和使用 self语法id…

对于button按钮引发的bug

主要原因就是今天在给button按钮添加一个点击事件的时候,并没有声明button的type类型,就一直发生点击按钮但事件并不触发的问题。 触发这种问题的原因就是: 按钮默认的 type 类型是 "submit",而不是 "button"。当你不显式…

AI视频教程下载:用ChatGPT提示词开发AI应用和GPTs

在这个课程中,你将深入ChatGPT的迷人世界,学习如何利用其能力构建创新和有影响力的工具。你将发现如何创建不仅吸引而且保持用户参与度的应用程序,将流量驱动到你的网站,并开辟新的货币化途径。 **课程的主要特点:** …

标贝语音识别技术在金融领域中的应用实例

随着语音识别技术与文本挖掘、自然语言处理等技术的不断融合,智能语音交互技术在金融领域中爆发了出巨大的应用潜力。标贝科技根据自身与金融领域合作的经验为大家梳理出以下几点智能语音识别技术在金融领域中的应用实例。 一、智能柜台服务 语音识别的主要功能就…

盲人手机导航:科技之光引领无障碍出行新纪元

在这个日新月异的数字时代,科技不仅改变了我们获取信息的方式,更在无声中拓宽了视障人士的生活半径。盲人手机导航这一创新技术,正逐步成为他们探索世界、实现独立出行的重要伙伴。 对于大多数人而言,日常出行或许只是一次…

红魔8/8Pro/8SPro手机升级安卓14版RedMagic9.0系统+降级出厂救砖刷机

红魔8系列手机也终于引来了安卓14系统的更新,该系统为最新的RedMagic9.0,目前属于公测版本,如果你已经升级了官方UI8.0最新版系统,并且拥有公测资格,可以直接在线检测到最新版UI9.0系统。9.0系统目前对比之前的8.0的版…

tidb离线本地安装及mysql迁移到tidb

一、背景(tidb8.0社区版) 信创背景下不多说好吧,从资料上查tidb和OceanBase“兼容”(这个词有意思)的比较好。 其实对比了很多数据库,有些是提供云服务的,有些“不像”mysql,综合考虑…

Go Web 开发【Gin 框架快速开发】

1、Gin Web 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了,在 Goland 命令行中输入下面的命令: go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败,最好设置一下代理,在 cmd 命令行中输…