使用node批量抓取并保存 rosi小姐姐写真图片

有的时候我们浏览一些网站,主要是为了看里面的图片,但是这样会存在几个问题

  1. 网速不给力的情况下怎么办?
  2. 来回切换网页,感觉好辛苦

    我们一起来学习如何批量下载图片到本地然后查看

主要node工具
cheerio和superagent和request
superagent的作用主要是用node访问http页面
cheerio主要作用类似浏览器的juqery
request请求图片,最后用fs.creaetWriteStream保存到本地

首先装一个node+express-generator
然后用express命令行生成一个简单的node网站大概的目录如下:
这里写图片描述

然后打开routes下的index文件,代码如下:

var express = require('express');
var router = express.Router();
const cheerio = require('cheerio');
const superagent = require('superagent');
const Throttle = require('superagent-throttle');
const fs = require('fs');
const Ut = require('./saveImg');
let throttle = new Throttle({
  active:true,        //  set false ti pause queue
  rate:6,
  ratePer:10000,
  concurrent:2
}).on('sent',(request) => {
  "user strict";
}).on('received',(request) => {
  //  sent a request
  "use strict";
  console.log('开始请求' + request.url);
}).on('drained',() => {
  "use strict";
  console.log("请求完成");
});


/* GET home page. */
// router.get('/', function(req, res, next) {
//   res.render('index', { title: 'Express' });
// });

router.get('/',function(req,res,next){
  let r = res;
  const reptileUrl = "http://www.meisiguan.cc/tag/rosi";
  superagent.get(reptileUrl).end(function(err,res){
    // 抛错拦截
    if(err){
      throw Error(err);
      return;
    }
    r.send(res);
    let $ = cheerio.load(res.text);
  });
})

module.exports = router;

这里写图片描述

### RO SI5机械臂的技术文档与控制方法 ROSI5机械臂作为工业自动化领域的重要组成部分,在ROS(Robot Operating System)框架下的技术支持和控制方法具有较高的复杂性和多样性。以下是关于ROSI5机械臂的相关技术资料、教程以及其在ROS中的控制方法。 #### 一、ROSI5机械臂的基础架构 ROSI5机械臂通常采用分层设计,其中涉及的主要层次包括硬件抽象层、操作系统抽象层以及应用程序接口层。具体来说: - **硬件抽象层 (Hardware Abstraction Layer)**:负责处理底层驱动程序和传感器数据采集的任务[^1]。 - **操作系统抽象层 (Operating System Abstraction Layer)**:提供跨平台支持,使开发者能够专注于高层逻辑而无需关心底层实现细节[^2]。 - **应用程序接口层 (Application Programming Interface Layer)**:通过标准化API简化了对机械臂的操作流程,例如路径规划、关节角度调整等功能调用[^3]。 #### 二、ROSI5机械臂的控制方式 对于ROSI5机械臂而言,常见的控制手段主要包括以下几种: 1. **手动模式** 手动模式允许操作者直接干预机器人的动作执行过程。“PP to Main”指令用于设定初始状态;随后激活电机开关 (“Motors On”) 触发运行命令,则可以在远程终端完成基本操控行为。 2. **自动编程模式** 自动化脚本编写可以通过高级语言如Python或者C++来定义一系列连续的动作序列将其部署至目标设备上运行。这种模式特别适合于重复性强且精度要求高的生产环境当中应用[^4]。 3. **基于MoveIt! 的智能化控制方案** MoveIt是一款强大的机器人运动规划库,它集成了多种先进的算法模型以应对复杂的动态场景需求。当结合Gazebo仿真器一起使用时,不仅可以验证理论可行性还能有效降低实际调试成本风险[^5]。 #### 三、推荐学习资源 针对希望深入了解ROSI5机械臂及其相关技术的学习者们,这里列举了一些有价值的参考资料供参考选用: - 官方文档网站提供了详尽的产品规格说明和技术手册下载链接; - 社区论坛里活跃着大量经验丰富的工程师分享他们的实战心得; - YouTube平台上也有不少高质量的教学视频演示如何快速入门该系列产品的基础功能设置步骤等实用技巧。 ```python import rospy from trajectory_msgs.msg import JointTrajectory, JointTrajectoryPoint def send_trajectory(): rospy.init_node('joint_trajectory_publisher') pub = rospy.Publisher('/joint_path_command', JointTrajectory, queue_size=10) traj = JointTrajectory() traj.joint_names = ["joint_1", "joint_2", "joint_3"] point = JointTrajectoryPoint() point.positions = [1.0, 2.0, 3.0] point.time_from_start = rospy.Duration(5.0) traj.points.append(point) rate = rospy.Rate(10) while not rospy.is_shutdown(): pub.publish(traj) rate.sleep() if __name__ == '__main__': try: send_trajectory() except rospy.ROSInterruptException: pass ``` 上述代码片段展示了如何利用ROS发布一条简单的关节轨迹消息给ROSI5机械臂控制器实例。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值