Node端爬取数据处理(http和https)

9 篇文章 1 订阅

1. 安装 http 和 https

npm install http -S
npm install https -S

2. 爬取数据处理

const http = require('http');
const https = require('https');
	
const  getUrlData = async(url, type) => {
	let request = type === 'https' ? https : http;
		
	return new Promise((resolve, reject) => {
			request.get(url, (res) => {
				const { statusCode } = res;
				let error;
				if(statusCode !== 200){
					error = new Error(`请求失败. \n 状态码: ${statusCode}`);
				}
				if(error){
					console.log(error.message);
					//	消耗响应数据以释放内存
					res.resume();
					resolve();
				}
				
				res.setEncoding('utf8');
				let rawData = '';
				res.on('data', (chunk) => { rawData += chunk; });
				res.on('end', () => {
					resolve(rawData);
				})
			}).on("error", (e) => {
				console.error(`错误:${e.message}`);
				resolve();
			})
		})
	}

参考

相关api使用请参考 node 学习网站

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以使用 Node.js 的第三方模块 cheerio 和 request 来实现微博超话数据的功能。具体步骤如下: 1. 安装 cheerio 和 request 模块: ``` npm install cheerio request ``` 2. 使用 request 模块获超话首页的 HTML 页面: ```javascript const request = require('request'); const cheerio = require('cheerio'); const url = 'https://weibo.com/p/1008085a5c1e3b3d41d2e9c7d1d2d8b3f76f39/super_index'; request(url, function (error, response, body) { if (!error && response.statusCode === 200) { const $ = cheerio.load(body); // 在这里解析 HTML 页面 } else { console.log('请求失败'); } }); ``` 3. 解析 HTML 页面,获超话的动态数据: ```javascript const request = require('request'); const cheerio = require('cheerio'); const url = 'https://weibo.com/p/1008085a5c1e3b3d41d2e9c7d1d2d8b3f76f39/super_index'; request(url, function (error, response, body) { if (!error && response.statusCode === 200) { const $ = cheerio.load(body); const $cards = $('.WB_cardwrap.WB_feed_type.S_bg2.WB_feed_like'); const data = []; $cards.each(function (index, element) { const $card = $(element); const $title = $card.find('.WB_text.W_f14'); const $summary = $card.find('.summary.W_autocut'); const $time = $card.find('.WB_from.S_txt2'); const item = { title: $title.text(), summary: $summary.text(), time: $time.text(), }; data.push(item); }); console.log(data); } else { console.log('请求失败'); } }); ``` 以上代码会输出超话的动态数据,包括标题、摘要和时间等信息。你可以根据自己的需求修改代码,添加更多的数据解析和处理逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值