爬虫小白入门在服务器上-部署爬虫或者开服务接口并供给他人访问

news2024/9/24 13:24:20

目录

      • 一、准备工作-服务器
        • 1、先准备一个服务器(以阿里云为例子)
        • 2、开通服务端口号访问权限
      • 二、准备工作-Xshell登录服务器
        • 1、xshell基本登录操作
        • 2、xftp基本操作
      • 三、部署代码到服务器上
        • 1、部署一个python爬虫脚本在服务器上定时运行等
        • 2、部署一个python服务接口他人调用访问等
        • 3、部署一个js服务接口他人调用访问等
        • 4、启动一个企业微信群告警的方式
        • 5、通过git的方式部署
      • 四、常用操作命令
        • 1、linux常用命令:
        • 2、windows常用命令
        • 3、node常用命令

一、准备工作-服务器

1、先准备一个服务器(以阿里云为例子)

  • 1、先准备一个云服务器,比如阿里云服务器新人免费使用3个月 , 或者腾讯云服务器,又或者华为云服务器都可以,但是提醒注意下,新用户的首单资格优惠力度最大,所以最好在一年有活动的时候买,比如618或者双十一,当然免费的话最好月初的时候开始试用
    在这里插入图片描述

  • 2、注意注意:可能我是不熟悉,走了一个坑,如果你在一个月的月底开始试用3个月的话,那么那一个月就算用掉了,所以建议在月初的时候开始试用,薅羊毛获得最大时长;因为比如我就是5月22号试用的,到7月31号就到期了,这时候其实已经少试用了20多天了~~ ;所以记得问下客服,如果现在开始试用,云服务器到期的具体时间点
    在这里插入图片描述

  • 3、购买服务器后,登录到这里,然后重置密码,然后强制重启
    在这里插入图片描述
    在这里插入图片描述

  • 4、快捷跳到后台-跳到这个控制台也可以选择对应产品跳到过来
    在这里插入图片描述

  • 可能这个时候大多数小白和我一样没啥概念,反正就先有个认识,这三种服务器的类型分类如下,而我们免费3个月的是云服务器ECS,所以点击这个进到对应后台
    在这里插入图片描述

  • 又比如腾讯云服务器,这里也有三种分类服务器,比如我第一次使用的是轻量应用服务器 ,所以点这个进到对应后台,没啥概念的小白的我,反正就先这样~
    在这里插入图片描述

  • 5、点击实例,如果没有显示你拥有的服务器,则地址位置看下是哪个区域,然后进行选择下
    在这里插入图片描述

2、开通服务端口号访问权限

  • 1、开通可以访问的端口号,只有开通了端口号,才能正常连接;在安全组-管理规则-手动添加对应端口,和授权对象ip ; 这里的意思是比如你要在服务器上启动一个服务比如http:0.0.0.1:4000/test , 想要别人能通过你的服务器外网ip访问到的话,你就得把端口权限打开
    在这里插入图片描述
    2、如下开端口、到https://www.ip138.com/可以看到你的IP
    在这里插入图片描述
  • 手动添加规则,注意指定的端口,和授权可以访问的ip即可,然后保存
    在这里插入图片描述
  • 那腾讯云轻量应用服务器也是在添加规则的位置,设定端口和授权ip在这里插入图片描述
    在这里插入图片描述

二、准备工作-Xshell登录服务器

  • 1、Xshell/Xftp下载地址 ,简言之,Xshell负责环境代码部署,Xftp负责文件或代码的同步与传输,搭配使用更方便
    在这里插入图片描述
  • 2、下载安装好后,如下,Xftp和Xshell的区别:我们在Xftp上的操作,在Xshell同样可以,只是Xftp通过可视化界面和点击、拖拽等方式可以实现文件上传/下载/删除/重命名/移动等,而Xshell则需要通过敲击命令的方式来实现;简言之,Xshell负责环境部署,Xftp负责文件或代码的同步与传输
    在这里插入图片描述

1、xshell基本登录操作

  • 1、双击打开xshell,登录linux系统等服务器操作的软件,文件>新建会话>如下连接对应服务器>按提示即可连上
    在这里插入图片描述

在这里插入图片描述

  • 2、登录上xshell服务器后,试着输入python3,可以发现服务器自带python3,ctrl+d退出python;接着你可以cd /opt 目录下,去下载一些常用的解压安装部署
    在这里插入图片描述
  • 3、比如在linux服务器上安装node环境
    cd /opt
    wget https://nodejs.org/dist/v16.15.0/node-v16.15.0-linux-x64.tar.xz
    tar -vxf node-v16.15.0-linux-x64.tar.xz
    mv node-v16.15.0-linux-x64  nodejs  
    
    在这里插入图片描述

2、xftp基本操作

  • 1、Xftp是一个用于Windows系统平台上的FTP、STFP协议文件传输程序,它能帮助用户安全地在Unix系统和Windows系统上进行快速的文件传输任务,并且它可对文件列表进行可视化展示,更符合Windows用户的使用习惯
    在这里插入图片描述
  • 2、双击打开后,依然是新建会话连上服务器
    在这里插入图片描述
  • 3、连上登录好后,就可以实现windows系统和服务器Unix系统的文件传输了,只需要选中指定文件进行拖拽即可
    在这里插入图片描述

三、部署代码到服务器上

  • 1、当然可以通过git的方式部署同步 ,如果你觉得xftp的方法麻烦的话,就用这个git的方法同步更新,git不熟悉的话,部署还需要麻烦些,可以加vsjyjy 备注:CSDN交流群
  • 2、但今天就简单介绍下临时几个文件的部署,以及常用命令等,所以就用xftp同步上线传文件即可,小白第一次x学习使用推荐这种方式吧
  • 3、当然还有其它方式部署爬虫,比如Scrapy等

1、部署一个python爬虫脚本在服务器上定时运行等

  • 1、样例代码代码https://github.com/Shirmay1/MoreMoreLearn , 文章所有代码开源在git上,csdn下载资源如果显示收费请到git上开源下
    在这里插入图片描述

  • 2、先在xsheel上命令创建一个目录data,专门用来存代码

    cd /
    mkdir data
    
  • 3、打开xftp,上传代码到服务器/data目录下
    在这里插入图片描述

  • 4、然后在xshell界面操作cd /data目录下,ls查看当前目录下的文件,然后python3运行目标python文件,如下正常运行
    在这里插入图片描述

  • 5、如果我们要让他一直持续运行到后台,并且定时启动呢,nohup python3 crawl_news.py >/dev/null 2>&1 & ,开个定时脚本,并logger.add('crawl_news.log', encoding='utf-8') 可以存储日志文件,loguru日志库学习

    	logger.add('crawl_news.log', encoding='utf-8')
    	
    	scheduler = BlockingScheduler(timezone='Asia/Shanghai')
    	scheduler.add_job(list_main, 'cron', hour=2, minute=30, args=(), max_instances=100, misfire_grace_time=360)
    	scheduler.start()
    
  • 6、如图,就成功部署好一个python爬虫脚本了,通过scheduler每天定时启动,ps -ef | grep crawl_news 搜索包含crawl_news的后台进程,如图进程号3562
    在这里插入图片描述

2、部署一个python服务接口他人调用访问等

  • 1、样例代码 ,本地直接运行打开http://127.0.0.1:8444/get_ip , 服务器上运行,则把对应的127.0.0.1改成对应的外网地址
    # -*- coding: utf-8 -*-            
    # @Time : 2023/7/2
    # @Author: sy
    # @公众号: 逆向OneByOne
    # @desc: 部署python flask的接口调用测试; vsjyjy 注:CSDN交流
    from flask import Flask, request
    from loguru import logger
    logger.add('flask_api.log', encoding='utf-8')
    
    app = Flask(__name__)
    
    
    @app.route("/get_ip", methods=['get'])
    def get_ip():
        ip = request.remote_addr
        logger.info(f"ip is {ip}")
        return f"your ip is {ip}"
    
    
    if __name__ == '__main__':
        app.run(host="0.0.0.0", port=8444, debug=True)
    
  • 2、xftp拖文件到对应服务器上
    在这里插入图片描述
  • 3、将文件部署到服务器上,然后后台持续运行, nohup python3 flask_api.py >/dev/null 2>&1 &
    在这里插入图片描述
  • 4、然后如下,打开服务器公网的接口如下访问,此时已经返回正常数据,说明部署成功 ; 如果你的访问不起来的话,可能你服务器安全组-规则端口没有打开权限
    在这里插入图片描述

3、部署一个js服务接口他人调用访问等

  • 1、代码https://github.com/Shirmay1/MoreMoreLearn,express用法 , 先启动express的js服务,然后python尝试调用

    # -*- coding: utf-8 -*-            
    # @Time : 2023/7/2
    # @Author: sy
    # @公众号: 逆向OneByOne
    # @desc: express接口调用案例
    import requests
    from loguru import logger
    logger.add('express_api.log', encoding='utf-8')
    
    lat_lng = {
        "lng": 120.5811424828,
        "lat": 31.3010678543,
        "Se": "inner",
        "num": 12
    }
    url = f"http://127.0.0.1:8444/lj_enc"
    resp = requests.post(url, data=lat_lng, timeout=10)
    logger.success(f"req_response {resp.text}")
    

    在这里插入图片描述

  • 2、xftp上传部署文件
    在这里插入图片描述

  • 3、启动服务,我们在xshell上面,先node express_api.js看看有没有报错,测试下报错的话安装相关模块,
    在这里插入图片描述

  • 4、打开测试下,服务器正常打印日志,然后python脚本运行下,正常返回数据,说明没接口调通,如果失败,看下服务器端口权限是否打开
    在这里插入图片描述
    在这里插入图片描述

  • 5、正式部署,用PM2部署js , pm2 start express_api.js --max-memory-restart200M (使用 --max-memory-restart 选项指定内存阈值) pm2
    -
    在这里插入图片描述

4、启动一个企业微信群告警的方式

  • 1、企业微信建一个群聊,然后添加一个群机器人
    在这里插入图片描述
  • 2、代码https://github.com/Shirmay1/MoreMoreLearn
    在这里插入图片描述

5、通过git的方式部署

  • 1、GitHub/Gitee/Gitlab平台:都可以,选择一个注册账号即可,平常写的代码是在工作区,通过git add命令是到暂存区, 通过git commit命令是到本地仓库,通过git push是到线上远程仓库


在这里插入图片描述

  • 2、安装下载与用户名密码配置, git安装下载
    在这里插入图片描述

  • 3、本地点击git bash后输入以下命令,配置用户名/密码,红色部分换成自己对应的

    • 显示当前的配置:git config --list
    • 设置用户名: git config --global user.name Shirmay
    • 设置用户名邮箱: git config --global user.email Shirmay@qqqqq.com
    • 系统用户级别设置:git config --global
  • 4、在你刚刚新建的远程仓库,克隆线上远程仓库, 建议通过ssh的连接方式登录,参考该文档目录十二ssh登录配置操作 , 按文档将sshkey复制到线上配置即完成第一步
    在这里插入图片描述

  • 5、本地新建一个空文件夹,记得github先建一个仓库,然后点击code这里复制ssh命令,然后打开git bash窗口输入命令:git clone git@github.com:Shirmay1/MoreMoreLearn.git,即可完成远程仓库克隆到本地的操作
    在这里插入图片描述
    在这里插入图片描述

  • 6、git忽略 pycache 和 .pyc文件

    • 在文件目录下新建.gitignore文件, 文件内容添加**/pycache,这样可以把文件夹中的__pycache__文件夹忽略,并且子文件夹中的__pycache__也一并忽略
      在这里插入图片描述
      在这里插入图片描述

    • 如果意外的已经通过git上传了那些文件的话,可以本地使用命令删除

      rm -rf 文件
      git rm --cached 文件
      
  • 7、常用命令

    • git status:查看本地工作区与本地仓库代码的差别
    • git diff 文件名: 比较本地与线上仓库代码差异点
    • git restore 文件名: 将本地文件还原成本地仓库的文件
    • git add 文件名:将本地文件上传到暂存区,git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件。注意 -A 选项后面还有一个句点。 git add -A表示添加所有内容, git add . 表示添加新文件和编辑过的文件不包括删除的文件; git add -u 表示添加编辑或者删除的文件,不包括新添加的文件
    • git commit -m ‘说明’:将暂存区代码提交到本地仓库
    • git push -u origin:将本地仓库提交到线上仓库
    • git remote -v:查看本地分支情况
    • git reset --hard: 回退到上一个版本
    • git pull origin master:从线上仓库拉取最新代码
    • git push origin master:将本地仓库的代码推到线上
    • 如下是本地常用的操作命令步骤,一般先git pull origin master , 然后再git push

四、常用操作命令

1、linux常用命令:

  • pwd:查看当前目录
  • ls : 查看目录下的文件 , 或者 ll 或者 la
  • ps -ef | grep .js : 搜索包含.js的进程
  • ps -ef | grep python : 搜索包含python的进程
  • ps aux|grep python |awk ‘{print $2}’|xargs kill -9 : 杀掉包含python的进程
  • nohup python epub_add.py >/dev/null 2>&1 & : 后台启python文件进程
  • mv: 移动文件/文件重命名
  • mkdir : 创建一个目录,-p用户创建多层目录
  • rm -rf:强制删除文件夹
  • df -h :查看磁盘空间
  • free -h : 查看内存使用
  • lsof -i:1110 查看1110端口占用 (yum install lsof -y)

2、windows常用命令

  • wmic process where name=“python.exe” list brief : 查看使用python的进程
  • netstat -ano |findstr “9110” : 看到端口占用
  • taskkill -f /pid 110108 : 杀掉进程

3、node常用命令

  • 直接启动运行js : node app2.js

  • pm2需要全局安装npm install -g pm2 , pm2

  • 启动进程/应用 pm2 start app2.js

  • 重新启动进程/应用 pm2 restart app2

  • 重新启动所有进程/应用 pm2 restart all

  • 列出所有进程/应用 pm2 list

  • 查看某个进程/应用具体情况 pm2 describe app2

  • 结束进程/应用 pm2 stop app2

  • 结束所有进程/应用 pm2 stop all

  • 删除进程/应用 pm2 delete app2

  • 删除所有进程/应用 pm2 delete all

  • 查看pm2的日志 pm2 logs

  • 查看某个进程/应用的日志,使用 pm2 logs www

  • 查看进程/应用的资源消耗情况 pm2 monit

  • 重命名进程/应用 pm2 start app2.js --name aaa

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

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

相关文章

Java-API简析_占位符类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131504916 出自【进步*于辰的博客】 因为我发现目前,我对Java-API的学习意识比较薄弱…

区块链开发:JS/TS本地|项目环境搭建

区块链开发:JS/TS本地|项目环境搭建 本地环境搭建VSCode Solidity扩展全局安装Solc,corepackVSCode配置本地Solc安装Ganache搭建JS虚拟环境 项目测试安装依赖编写代码部署合约test_blockchain.ts 设置Script部署查看 报错说明1. Error:missing revert da…

【EasyX】使用C/C++实现 流星雨效果(配上详细注释解释)

🎊专栏【​​​​​​​EasyX】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 文章目录 🍔效果&#x…

RNN LSTM

参考资料: 《机器学习2022》李宏毅史上最详细循环神经网络讲解(RNN/LSTM/GRU) - 知乎 (zhihu.com) LSTM如何来避免梯度弥散和梯度爆炸? - 知乎 (zhihu.com) 1 RNN 的结构 首先考虑这样一个 slot filling 问题: 注意…

云解析DNS

云解析过程: DNS查询的结果通常会在本地域名服务器中进行缓存,如果本地域名服务器中有缓存的情况下,则会跳过如下DNS查询步骤,很快返回解析结果。下面的示例则概述了本地域名服务器没有缓存的情况下,DNS查询所需的8个步…

电路的组成和连接方式-通路、开路、短路

电路是电子设备中最基本的组成部分之一,它由各种电子元件组成,并通过连接方式构建成不同的电路结构。在电路设计和维护中,通路、开路和短路是常见的概念,它们分别代表了电路中不同的连接状态和故障情况。 工具认识: …

万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】

前言 以下给出来四个常见的小程序个人主页,分别是商城系统个人主页,外卖系统个人主页,挂号系统个人主页,电影购票系统个人主页。包括完整的页面布局代码,完整的样式代码。使用的时候,只需要将页面代码和样式代码复制到自己项目对应的页面即可。而且可以根据已有代码只需稍…

【机器学习】准确率、精确度、召回率和 F1 定义

一、说明 数据科学家选择目标变量后 - 例如他们希望预测电子表格中的“列”,并完成了转换数据和构建模型的先决条件,最后步骤之一是评估模型的性能。 二、混淆矩阵的模型 2.1 混淆矩阵 选择性能指标通常取决于要解决的业务问题。假设您的数据集中有 10…

电子时钟制作(瑞萨RA)(2)----使用串口进行程序烧写

概述 本篇文章主要介绍如何使用UART串口烧写程序到瑞萨芯片,并以实际项目进行演示。 硬件准备 首先需要准备一个开发板,这里我准备的是芯片型号R7FA2E1A72DFL的开发板: 视频教程 https://www.bilibili.com/video/BV1kX4y1v7tL/ 电子时钟制…

Symbol.for()

示例:Symbol() 和 Symbol.for(‘ ’)的区别 Symbol.for("foo"); // 创建一个 symbol 并放入 symbol 注册表中,键为 "foo" Symbol.for("foo"); // 从 symbol 注册表中读取键为"foo"的 symbolSymbol.for("b…

常见面试题之线程池

1. 说一下线程池的核心参数(线程池的执行原理知道嘛)? 线程池核心参数主要参考ThreadPoolExecutor这个类的7个参数的构造函数 corePoolSize 核心线程数目 maximumPoolSize 最大线程数目 (核心线程救急线程的最大数目) keepAliveTime 生存…

蘑菇车联用城市级落地讲述自动驾驶新故事

作者 | 魏启扬 来源 | 洞见新研社 “如果不能实现自动驾驶,特斯拉将一文不值”。 这是马斯克在接受媒体采访时的公开发言,这句话的语境是,特斯拉是自动驾驶坚实的拥护者,且一直在付诸行动。 可是特斯拉渐进式的单车智能路线&am…

【游戏逆向】探索可靠的线程检查方法

一、关键的线程检查 在对抗外挂和木马的方案中,不可能将所有的检查操作放在主线程中,因此,在方案中总有一个扫描线程或者环境检查线程必须保持工作,而它们也就成了外挂和木马的重要攻击目标,外挂和木马只要搞定了它们…

【高可用架构】聊聊故障和高可用架构设计

在架构设计中,高性能、高可用、可拓展以及安全等等有多种维度去判断架构的设计纬度,但是一般来说我们需要考虑具体的业务场景,去判断采用那种合适的架构方案,但是对于大多数的设计来说,都需要满足高性能、高可用。所以…

专科学历,有机会转行程序员吗?

你好,我是程序员晚枫,昨晚又1对1沟通了一位想转行程序员的朋友。 这位朋友是专科毕业,在电子厂干了2年多,感觉看不到希望,来找我咨询一下有没有转行程序员的可能性 学习计划。 我觉得他的情况和提问很有代表性&…

软件测试综述

概述 在不短不长的7年多研发生涯中,听过无数个软件测试概念:单元测试、功能测试、白盒测试、黑盒测试、自动化测试、契约测试、基准测试、性能测试、集成测试、渗透测试、接口测试、UI测试、端到端测试、E2E测试…… 恰逢在准备系统架构设计师软考高级…

我的创作纪念日-256天

机缘: 没有在csdn进行写作,我就不会认识更多对应领域的博主,并且也认识到了很多不同领域的博主这令我感到非常荣幸,能够加入到csdn。在分享交流的过程种我获得了: 实战项目中的经验分享日常学习过程中的记录通过文章进…

Ubuntu20.04安装arm-linux-gcc 4.3.2 (提供安装包)

⁡​​⁢‬‌​⁢‌⁡‍⁣⁤‬‌⁡⁢⁢‍⁡⁤​⁣‬‌‬‍⁤​⁤‌⁣⁤​⁤⁢‍⁢⁤‬⁣‬​‌Ubuntu20.04安装arm-linux-gcc 4.3.2 - 飞书云文档 (feishu.cn) CSDN编辑太丑了 转移阵地了

Google Colab:云端的Python编程神器

Google Colab,全名Google Colaboratory,是Google Research团队开发的一款云端编程工具,它允许任何人通过浏览器编写和执行Python代码。Colab尤其适合机器学习、数据分析和教育目的。它是一种托管式Jupyter笔记本服务,用户无需设置…

SQL-每日一题【185.部门工资前三高的员工】

题目 表: Employee 表: Department 公司的主管们感兴趣的是公司每个部门中谁赚的钱最多。一个部门的 高收入者 是指一个员工的工资在该部门的 不同 工资中 排名前三 。 编写一个SQL查询,找出每个部门中 收入高的员工 。 以 任意顺序 返回结果表。 查询结果格式如…