当前位置: 首页 > news >正文

Node爬虫项目精简版 wallhaven网站实操 2023.8.29

在这里插入图片描述
练习地址: https://wallhaven.cc/toplist

在这里插入图片描述

const express = require('express');
const axios = require('axios');
const cheerio = require('cheerio');
const schedule = require('node-schedule');
const fs = require('fs');async function downloadImage(url) {const response = await axios.get(url, {responseType: 'arraybuffer'});return response.data;
}
async function saveImage(url, path) {const image = await downloadImage(url);fs.writeFileSync(path, image);
}
async function AccessToResources(url) {try {const response = await axios.get(url);const $ = cheerio.load(response.data);const images = [];$('a.preview').each((i, el) => {const img = $(el).attr('href');if (!img) return;images.push(img);});for (let i = 0; i < images.length; i++) {const date = new Date();const response = await axios.get(images[i]);const $ = cheerio.load(response.data);const img = $('img#wallpaper').attr('src');const fileName = date.getTime();await saveImage(img, `./images/${fileName}.jpg`)}} catch (e) {console.log('e');}
}const rule = new schedule.RecurrenceRule();
rule.hour = [1, 2, 3, 4, 5, 6];
rule.minute = 0;
const url = 'https://wallhaven.cc/toplist';
const job = schedule.scheduleJob(rule, function () {console.log('开始执行任务', rule.hour)AccessToResources(url);
});
AccessToResources(url);const app = express();
app.use(express.static('images'));
app.get('/', (req, res) => {res.send('Hello World!');
})
app.listen(1234, () => {console.log('server is running at http://localhost:1234');
})

相关文章:

Node爬虫项目精简版 wallhaven网站实操 2023.8.29

练习地址&#xff1a; https://wallhaven.cc/toplist const express require(express); const axios require(axios); const cheerio require(cheerio); const schedule require(node-schedule); const fs require(fs);async function downloadImage(url) {const response…...

Vue统计图表的数据标签和数值显示技巧

Vue统计图表的数据标签和数值显示技巧 在开发Web应用程序时&#xff0c;统计图表是非常重要的数据呈现方式。Vue是一种流行的JavaScript框架&#xff0c;它提供了许多方便的功能来处理和展示数据。在这篇文章中&#xff0c;我们将探讨如何使用Vue来添加数据标签和数值显示到统…...

Linux 虚拟机同步时间crontab以及crond详解

目录 一 Linux 虚拟机同步时间设置 1. 检查是否安装cron服务&#xff08;即时间同步器&#xff09; 2. 下载时间同步器 3. 编辑crontab 内容 4. 同步更新电脑网络时间 5.设置 reload 6. 查看 crond 状态 二 crond 详解 1. 启动/关闭cron服务 2. crontab命令格式 3. …...

springmvc没有绿标,怎么配置tomcat插件运行?

一、添加插件后&#xff0c;刷新&#xff0c;自动从maven仓库下载tomcat插件 二、写好项目后&#xff0c;添加tomcat配置 三、即可点击绿标运行...

设计模式--模板方法模式(Template Method Pattern)

一、什么是模板方法模式&#xff08;Template Method Pattern&#xff09; 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;将一些步骤的实现延迟到子类中。模板方法模式允许在不改变算法的…...

linux 权限管理命令

权限管理命令 权限的查看及含义 可以使用ls -l来查看每个文件或目录的权限&#xff0c;一共有十位 ls -ls--------------------------------------------------------------------rw-------. 1 root root 946 Feb 14 16:13 anaconda-ks.cfgdrwxr-xr-x. 2 root root 4096 Feb…...

c++ qt--线程(一)(第八部分)

c qt–线程&#xff08;一&#xff09;&#xff08;第八部分&#xff09; 一.进程&#xff08;Process&#xff09; 在任务管理器中的进程页下&#xff0c;可以看到进程&#xff0c;任务管理器将进程分为了三类&#xff0c;应用、后台进程、window进程 应用&#xff1a; 打开…...

参数初始化方法

梯度消失与梯度爆炸 考虑一个 3 层的全连接网络。 H 1 X W 1 H{1}X \times W{1} H1XW1&#xff0c; H 2 H 1 W 2 H{2}H{1} \times W{2} H2H1W2&#xff0c; O u t H 2 W 3 OutH{2} \times W_{3} OutH2W3​ 其中第 2 层的权重梯度如下&#xff1a; Δ W 2 ∂ L o s s …...

Go的基础运行方式和打包

目录 基础运行方式导入路径 打包技巧相关知识点 基础运行方式 // 文件名可以不是main&#xff0c;但包名和入口函数比如是main // main.go package main // 导入包的时候可以直接导入&#xff0c;也可以导入后指定包名&#xff0c; import ("fmt"godemo "githu…...

Deepin 图形化部署 Hadoop Single Node Cluster

Deepin 图形化部署 Hadoop Single Node Cluster 升级操作系统和软件 快捷键 ctrlaltt 打开控制台窗口 更新 apt 源 sudo apt update更新 系统和软件 sudo apt -y dist-upgrade升级后建议重启 开启ssh服务 打开资源管理器 进入系统盘 找到 etc 目录 在系统盘的 etc 目录上 右键…...

23款奔驰GLS400升级柏林之声音响系统,体验不一样的感觉

Burmester 环绕立体声音响系统–为每位乘员打造令人印象深刻的音质13个高性能扬声器、总功率为590瓦的9声道数字信号处理器(DSP)放大器以及放大器/扬声器系统专为车辆配置&#xff0c;打造出一流的Burmester之音。必要时还可进一步提升令人印象深刻的听觉体验。声音环绕功能能够…...

Vue的map()方法和filter()方法的使用

map() map()&#xff1a;方法返回一个新数组&#xff0c;数组中的元素为原始数组元素调用函数处理后的值 案例&#xff1a; const data res.map(item > item.id); const data res.map(item > return item.id); const data res.map(item > { name: item.name, id…...

qt创建临时文件

1、临时文件系统 在 Linux 系统中&#xff0c;创建临时文件系统很简单&#xff0c;执行如下指令即可&#xff1a; mount -t tmpfs -o size1024m tmpfs /mnt/tmp 挂载成功后&#xff0c;在 /mnt/tmp 这个挂载点下创建的所有文件都将会是临时文件, 也就是说&#xff1a;当电脑关…...

Element——table排序,上移下移功能。及按钮上一条下一条功能

需求&#xff1a;table排序&#xff0c;可操作排序上移下移功能。判断第一行上移禁用和最后一行下移禁用&#xff0c;排序根据后端返回的字段 <el-table:data"tableData"style"width: 100%"><el-table-column type"index" label"序…...

无涯教程-Android - Linear Layout函数

Android LinearLayout是一个视图组&#xff0c;该视图组将垂直或水平的所有子级对齐。 Linear Layout - 属性 以下是LinearLayout特有的重要属性- Sr.NoAttribute & 描述1 android:id 这是唯一标识布局的ID。 2 android:baselineAligned 此值必须是布尔值&#xff0c;为…...

ELK安装、部署、调试(六) logstash的安装和配置

1.介绍 Logstash是具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据&#xff0c;并将数据标准化到您选择的目标输出。它提供了大量插件&#xff0c;可帮助我们解析&#xff0c;丰富&#xff0c;转换和缓冲任何类型的数据。 管道&#xff08;Logs…...

【Spring Security】UserDetails 接口介绍

文章目录 UserDetails 的作用UserDetails 接口中各个方法详解 UserDetails 的作用 UserDetails 在 Spring Security 框架中主要担任获取用户信息的接口&#xff0c;通过该接口就能拿到用户的信息和验证用户的信息&#xff0c;这些信息在下面的方法中会有讲述。 UserDetails 接…...

C# Linq源码分析之Take(四)

概要 本文主要对Take的优化方法进行源码分析&#xff0c;分析Take在配合Select&#xff0c;Where等常用的Linq扩展方法使用时候&#xff0c;如何实现优化处理。 本文涉及到Select, Where和Take和三个方法的源码分析&#xff0c;其中Select, Where, Take更详尽的源码分析&…...

Python 和 C++ 使用细节差别

1. 循环中的可迭代对象长度 1. 循环中的可迭代对象长度 C 中&#xff0c;for循环中写明a.size()&#xff0c;每次循环这个值是重新计算的&#xff1b; # include “iostream” # include <vector> using namespace std;int main() {vector<int> a(10);int cnt 0…...

在Ubuntu Linux系统上安装RabbitMQ服务并解决公网远程访问问题

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…...

突发!国行苹果 AI 凌晨偷跑又紧急下线

3 月 31 日凌晨&#xff0c;大量升级 iOS 26.4 的国行 iPhone 16 及后续机型用户&#xff0c;突然发现设置里 “Siri” 变成 “Apple 智能与 Siri”&#xff0c;可下载 9.5GB 本地 AI 模型&#xff0c;解锁实时翻译、视觉智能、照片消除等全套功能。不过这场“惊喜”仅持续了数…...

Qwen3.5-2B图文对话实战:上传实验数据图→自动识别坐标轴+趋势分析+结论建议

Qwen3.5-2B图文对话实战&#xff1a;上传实验数据图→自动识别坐标轴趋势分析结论建议 1. 引言&#xff1a;当AI遇见科研数据分析 作为一名科研工作者&#xff0c;你是否经常遇到这样的场景&#xff1a;实验室刚跑出一组数据&#xff0c;你迫不及待想分析趋势&#xff0c;却发…...

Realistic Vision V5.1 提示词工程入门:C语言基础思维在Prompt编写中的应用

Realistic Vision V5.1 提示词工程入门&#xff1a;C语言基础思维在Prompt编写中的应用 如果你有C语言的编程经验&#xff0c;现在想玩转AI图像生成&#xff0c;特别是像Realistic Vision V5.1这样的写实风格模型&#xff0c;那这篇文章就是为你准备的。很多人觉得写提示词&am…...

ZGC停顿时间为何突然飙升?3个被90%团队忽略的配置雷区曝光

第一章&#xff1a;ZGC停顿时间为何突然飙升&#xff1f;3个被90%团队忽略的配置雷区曝光 ZGC&#xff08;Z Garbage Collector&#xff09;以亚毫秒级停顿著称&#xff0c;但生产环境中频繁出现 10–50ms 甚至更高停顿&#xff0c;往往并非内存压力所致&#xff0c;而是源于几…...

Axelspace 太空公司牵头联合体入选日本太空战略基金项目 “提升下一代地球观测卫星能力技术”

—— 通过卫星星座与航空器开展特定排放源二氧化碳排放与吸收监测&#xff0c;打造气候解决方案&#xff0c;开拓全新市场机遇 Axelspace 太空公司、明星电气株式会社、全日空控股株式会社及 JIJ 株式会社联合宣布&#xff0c;各方共同申报的技术研发项目成功入选日本宇宙航空…...

Python 3.14 JIT编译延迟高达83ms?这不是Bug,是设计——揭秘AST→LLVM IR→Native Code三级缓存失效链

第一章&#xff1a;Python 3.14 JIT编译器性能调优架构设计图Python 3.14 引入的实验性 JIT 编译器&#xff08;代号 “Triton”&#xff09;采用分层编译策略&#xff0c;将热点函数动态划分为解释执行、字节码优化、LLVM IR 生成与本地机器码缓存四个协同层级。其核心设计目标…...

AI写论文超厉害!4款AI论文生成工具,解决毕业论文写作难题!

还在为撰写期刊论文而烦恼吗&#xff1f;面对成堆的文献、复杂的格式要求以及无休止的修改&#xff0c;许多学术人员常常感到效率低下。这并不奇怪&#xff01;不过&#xff0c;不必太担心&#xff0c;以下将推荐4款实测有效的AI论文写作工具&#xff0c;它们能帮助你在论文文献…...

DamoFD与数据结构优化:提升人脸检测效率50%的实战技巧

DamoFD与数据结构优化&#xff1a;提升人脸检测效率50%的实战技巧 1. 效果惊艳的开场 如果你正在为人脸检测模型的推理速度发愁&#xff0c;那么今天的内容绝对能让你眼前一亮。DamoFD-0.5G作为达摩院推出的轻量级人脸检测模型&#xff0c;本身已经相当高效&#xff0c;但通过…...

Linux内核工程师面试高频问题解析

1. Linux内核工程师面试核心问题解析作为一名在Linux内核领域摸爬滚打多年的老手&#xff0c;我经历过无数次技术面试的洗礼。今天就把阿里云这类一线大厂在Linux内核工程师岗位上的高频面试题做个系统梳理&#xff0c;并附上我个人的解题思路和实战经验。这些题目看似基础&…...

HTML新手入门教程(二)

一、网页图像标签以及超链接 接着上篇文章&#xff0c;这次我们来学习一下图像标签、超链接标签如何使用&#xff0c;以及使用效果。本文章我们以<img>和<a>标签来展开教学。 在 HTML 中&#xff0c;<img>标签用于在网页中插入图像。它的作用是可以把文档中…...