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

用nodejs爬虫台湾痞客邦相册

情景:是这样的,我想保存一些喜欢的小伙伴的照片,一张张保存太慢了, 所以我写了个js,放在国外服务器爬,国内的自己解决~

使用方法

1.点相册随便一张, 复制url, 这张开始接下来的图片都会保存

/*** 2023年10月23日 22:58:44* 支持解析痞客邦相册* 只需要复制相册第一张图片的url就行* * *  */
const axios = require('axios');
const cheerio = require('cheerio');
const fs = require('fs');
const path = require('path');
const https = require('https');
let i = 0 //计算照片数量
// 示例用法 替换为您要解析的相册地址第一张图
let url = 'https://用户id.pixnet.net/album/photo/100898948#after=100899621'
//默认延迟时间, 爬太快我怕出问题
let delay = 3000
//获取图片和下一个网页函数
async function parseImgTags(url) {try {const response = await axios.get(url);const html = response.data;const $ = cheerio.load(html);++i;let src = $('#item-frame-img').attr('src')console.log(`解析到第${i}张图片`, src);let nextlink = $('.item-frame .photolink').attr('href')console.log('结果是,', nextlink)//解析到然后保存本地await saveImageToLocal(src)setTimeout(() => {parseImgTags(nextlink)}, delay);return nextlink} catch (e) {console.log('出了点问题')return ''}
}//调用函数
parseImgTags(url).then(nextlink => {console.log('有下一个', nextlink)return}).catch(error => {console.error('Error:', error);});async function saveImageToLocal(imageUrl) {// 获取图片文件名const filename = path.basename(imageUrl);// 检查目录是否存在,如果不存在则创建const dir = path.join('.', 'image');if (!fs.existsSync(dir)) {fs.mkdirSync(dir);}// 构造本地文件路径const localPath = path.join(dir, filename);// 下载图片并保存到本地文件系统中const file = fs.createWriteStream(localPath);return new Promise((resolve, reject) => {https.get(imageUrl, response => {response.pipe(file);file.on('finish', () => {file.close(resolve);});}).on('error', error => {fs.unlink(localPath, () => {reject(error.message);});});});
}

相关文章:

用nodejs爬虫台湾痞客邦相册

情景:是这样的,我想保存一些喜欢的小伙伴的照片,一张张保存太慢了, 所以我写了个js,放在国外服务器爬,国内的自己解决~ 使用方法 1.点相册随便一张, 复制url, 这张开始接下来的图片都会保存 /*** 2023年10月23日 22:58:44* 支持解析痞客邦相册* 只需要复制相册第一张图片的ur…...

物联网_01_物理设备的网络接入

设备的网络接入及物理层使用到的传输协议 现在物理设备有两种接入方式,一种是直接接入另一种是网关接入 直接接入 给物理设备添加NB-IOT通信模组等设备使之具有直接接入网络的能力 网关接入 物理设备在本地组网后通过统一的网关接入到网络(ZigBee无线组网网关).网关是处在本地…...

AD9371 官方例程之 tx_jesd 与 xcvr接口映射

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发 AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成(一) AD9371 官方例程 时钟间的关系与生成 &…...

UserWarning: CUDA initialization: CUDA unknown error

CUDA在suspend之后不可用问题 问题描述 一觉醒来,电脑cuda不可用 /home/你的电脑/pytorch/lib/python3.8/site-packages/torch/cuda/__init__.py:107: UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up enviro…...

C算法:使用选择排序实现从(大到小/从小到大)排序数组,且元素交换不可使用第三变量。

需求&#xff1a; 使用选择排序实现从(大到小/从小到大)排序&#xff0c;且元素交换不可使用第三变量 (异或交换法) 代码实现&#xff1a; #include <stdio.h> void maopao(int* array,int len,int(*swap)(int a,int b)) {int i,j;for(i0;i<len-1;i){for(ji1;j<…...

用mysql客户端操作时,一直提示 Lost connection to MySQL server during query

问题&#xff1a;ERROR 2013 (HY000): Lost connection to MySQL server during query :查询期间失去与 MySQL 服务器的连接 原因&#xff1a;如果客户端如果太长时间没动静&#xff0c;连接器就会自动将连接断开&#xff0c; 这个时间是由参数wait_timeout控制的&#xff0c;…...

KubeSphere一键安装部署K8S集群(单master节点)-亲测过

1. 基础环境优化 hostnamectl set-hostname master1 && bash hostnamectl set-hostname node1 && bash hostnamectl set-hostname node2 && bashcat >> /etc/hosts << EOF 192.168.0.34 master1 192.168.0.45 node1 192.168.0.209…...

vue3 element-plus 组件table表格 勾选框回显(初始化默认回显)完整静态代码

<template><el-table ref"multipleTableRef" :data"tableData" style"width: 100%"><el-table-column type"selection" width"55" /><el-table-column label"时间" width"120">…...

Redis --- 安装教程

Redis--- 特性&#xff0c;使用场景&#xff0c;安装 安装教程在Ubuntu下安装在Centos7.6下安装Redis5 特性在内存中存储数据可编程的扩展能力持久化集群高可用快速 应用场景实时数据存储作为缓存或者Session存储消息队列 安装教程 &#x1f680;安装之前切换到root用户。 在…...

代码阅读:LanGCN

toc 1训练 1.1 进度条 import tqdm as tqdm for i, data in tqdm(enumerate(train_loader),disablehvd.rank()):1.2 多进程通信 多线程通信依靠共享内存实现&#xff0c;但是多进程通信就麻烦很多&#xff0c;因此可以采用mpi库&#xff0c;如果是在python中使用&#xff0…...

基于Java的校园餐厅订餐管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…...

使用C#和Flurl.Http库的下载器程序

根据您的要求&#xff0c;我为您编写了一个使用C#和Flurl.Http库的下载器程序&#xff0c;用于下载凤凰网的图片。以下是一个简单的示例代码&#xff1a; using System; using Flurl.Http;namespace DownloadImage {class Program{static void Main(string[] args){string url…...

面试经典150题——Day19

文章目录 一、题目二、题解 一、题目 58. Length of Last Word Given a string s consisting of words and spaces, return the length of the last word in the string. A word is a maximal substring consisting of non-space characters only. Example 1: Input: s “…...

TP6首页加载报错 Call to a member function run() on null

最近新接入一个二开的项目&#xff0c;tp6的项目内置的composer.json文件里引入的topthink框架包文件却是"topthink/framework": "5.0.*",导致了以下错误&#xff1a; 错误&#xff1a; Fatal error: Uncaught Error: Call to a member function run() o…...

洗车小程序源码:10个必备功能,提升洗车体验

作为洗车行业的专家&#xff0c;我们深知在如今数字化时代&#xff0c;拥有一款功能强大的洗车小程序是提升用户体验和业务发展的关键。本文将向您介绍洗车小程序源码中的10个必备功能&#xff0c;让您的洗车业务达到新的高度。 在线预约系统 通过洗车小程序源码&#xff0c;…...

macOS telnet替代方式

前言 经过使用Linux&#xff0c;常常用Linux的telnet查看端口畅通&#xff0c;是否有防火墙&#xff0c;但是在mac上已经没有这个命令了&#xff0c;那么怎么使用这个命令或者有没有其他替代呢&#xff0c;win和linux是否可以使用相同的替代。macOS可以原生用nc命令替代&#…...

【leetcode】独特的电子邮件地址

题目描述 每个 有效电子邮件地址 都由一个 本地名 和一个 域名 组成&#xff0c;以 ‘’ 符号分隔。除小写字母之外&#xff0c;电子邮件地址还可以含有一个或多个 ‘.’ 或 ‘’ 。 例如&#xff0c;在 aliceleetcode.com中&#xff0c; alice 是 本地名 &#xff0c;而 lee…...

解密Java中神奇的Synchronized关键字

文章目录 &#x1f389; 定义&#x1f389; JDK6以前&#x1f389; 偏向锁和轻量级锁&#x1f4dd; 偏向锁&#x1f4dd; 轻量级锁&#x1f4dd; 自旋锁&#x1f4dd; 重量级锁&#x1f525; 1. 加锁&#x1f525; 2. 等待&#x1f525; 3. 撤销 &#x1f389; 锁优化&#x1f…...

微信删除的好友还能找回来吗?盘点5种超实用的方法!

当我们在认识新的朋友时&#xff0c;都喜欢通过添加对方微信来保持日后的联系。但是有时候可能会由于没有及时备注而不小心误删了对方。想要将对方加回来&#xff0c;又找不到有效的方法。微信删除的好友还能找回来吗&#xff1f;当然可以了&#xff01;但我们要根据实际情况选…...

Nmap 常用命令汇总

Nmap 命令格式 namp 【扫描类型】 选项 {目标ip 或 目标网络段} 根据扫描类型&#xff0c;可分成两类&#xff0c;一种是主机扫描类型&#xff0c;另一种是端口扫描类型 一、常用主机扫描&#xff1a; 扫描类型&#xff1a; -PR 对目标ip所在局域网进行扫描 &#xff08;使…...

软件定义汽车(SDV)技术架构与开发模式解析

1. 软件定义汽车&#xff08;SDV&#xff09;的本质与行业变革 十年前买车时&#xff0c;销售顾问会着重介绍发动机参数、底盘调校这些硬件指标。但最近我去试驾某新势力车型&#xff0c;销售花了40分钟演示中控屏的语音交互和自动驾驶功能——这就是SDV带来的最直观变化。所谓…...

2026 全新 Java 面试题汇总!!(含答案)

别再拿旧资料瞎准备了&#xff01;看看我们这份联合2025-2026届成功入职头部企业的12位准大厂人&#xff0c;深挖近3个月一线互联网、科技公司的真实面经反馈、核心考察重点&#xff0c;把大厂面试官的提问逻辑、评分标准、高频考点全拆解&#xff0c;耗时打磨出这份「最新大厂…...

Windows系统直接运行Android应用:APK Installer全指南

Windows系统直接运行Android应用&#xff1a;APK Installer全指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾因Android模拟器启动缓慢、占用资源过多而放…...

YOLOv13 前瞻:YOLO 最新改进方向与模块预测(独家分析)

YOLOv13 真的来了吗&#xff1f;如果来了&#xff0c;它会是什么样子&#xff1f; 这是2026年以来&#xff0c;目标检测圈里最热的一个话题。根据 CSDN 社区 2026 年 1-3 月的讨论热度统计&#xff0c;“YOLOv13”相关关键词的搜索量在短短三个月内增长了近 5 倍&#xff0c;开…...

5个核心价值:docx2tex实现DOCX到LaTeX的高效转换

5个核心价值&#xff1a;docx2tex实现DOCX到LaTeX的高效转换 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 在学术论文撰写中&#xff0c;一位研究生花费数小时手动调整从Word转换过来的LaTe…...

ubuntu 2204 tensorrt推理yolo环境配置

显卡驱动安装 sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-driver-570 # 重启电脑 sudo reboot # 验证命令 nvidia-smi 570的驱动最高支持到CUDA 12.8版本&#xff0c;需要使用更高版本需要安装更新的驱动 CUDA安装…...

Pixel Script Temple Java开发全栈入门:从环境安装到项目实战

Pixel Script Temple Java开发全栈入门&#xff1a;从环境安装到项目实战 1. 前言&#xff1a;为什么选择Java全栈开发&#xff1f; Java作为一门经久不衰的编程语言&#xff0c;在企业级应用开发中占据着重要地位。学习Java全栈开发不仅能让你掌握后端服务的构建能力&#x…...

vLLM-v0.17.1与Proteus仿真联动:为嵌入式设计添加自然语言交互

vLLM-v0.17.1与Proteus仿真联动&#xff1a;为嵌入式设计添加自然语言交互 1. 当电路设计遇上自然语言 想象这样一个场景&#xff1a;你正在设计一个嵌入式系统电路&#xff0c;突然想到"这里需要加个滤波电路来消除噪声"。传统方式需要手动查找元件库、绘制电路图…...

位运算的技巧和演示

尝试理解并去总结...

OpenClaw配置备份方案:Qwen3.5-9B模型迁移无忧指南

OpenClaw配置备份方案&#xff1a;Qwen3.5-9B模型迁移无忧指南 1. 为什么需要OpenClaw配置备份 上周我的MacBook突然黑屏送修&#xff0c;维修人员告诉我主板需要更换。那一刻我突然意识到&#xff1a;过去三个月精心调校的OpenClaw配置可能面临灭顶之灾。特别是那个与Qwen3.…...