使用node.js爬取网页数据(简单粗暴)

前言

本文使用node以爬取百度新闻为例展示node爬虫技术。
需求:能看懂html网页结构,知道自己想要哪里。
需求:能看懂html网页结构,知道自己想要哪里。
需求:能看懂html网页结构,知道自己想要哪里。

正文

1.再vscode中新建文件夹,右键文件夹选择集成终端中打开

2.输入初始化命令:npm init -y

3.安装express 模块:npm i express

4.安装got模块:npm i got

5.安装cheerio模块:npm i cheerio
安装完成应显示:
在这里插入图片描述

6.代码部分:

app.get('/p', (req, res) => {								   		//定义路由
   (async () => {
       try {
           const response = await got('https://news.baidu.com/');   //想抓取的网址
           let $ = cheerio.load(response.body)                      //获取网址的DOM结构
           let result = $('#pane-news li a')                        //想抓取的部位
           let news = []                                            //定义新闻数组
           result.each((index, item) => {                           //循环抓取的内容
               news.push($(item).text())                            //循环添加到数组中 
               fs.writeFileSync('./news.txt', $(item).text()+'\n', {flag: 'a'}) //写入文件中
           }) 
           res.send(news)                                           //显示在页面上
       } catch (error) {
           console.log(error);
       }
   })();
})
//打开服务器端口
app.listen(3001, () => {
   console.log('http://localhost:3001')
})

提示:不会看不懂没事因为我没学node一开始也看不懂哈哈哈,直接复制粘贴。
在终端运行 http://localhost:3001/p 进行查看
图示:
要抓取的部分
在这里插入图片描述
成果图:
在这里插入图片描述
用fs模块写入txt文本:
在这里插入图片描述

结语:代码简单,但是没学过node应该看不懂,有注释,修改部分代码即可照葫芦画瓢抓取想要的数据。有不懂的地方可以百度或者私信。

特别提示:爬取他人网站数据好像不太好,没事尽量少爬。在这里插入图片描述

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要在 Node.js取图片,你可以使用各种库和模块来帮助你完成这个任务。以下是一种常见的做法: 1. 首先,你需要安装并引入 `axios` 库,这是一个非常流行的用于发送 HTTP 请求的库。你可以使用以下命令安装它: ``` npm install axios ``` 在代码中引入 `axios`: ```javascript const axios = require('axios'); ``` 2. 接下来,你需要确定要取图片的 URL 地址。可以通过发送 HTTP 请求并使用 `axios.get` 方法获取到图片的二进制数据。 ```javascript const imageUrl = 'https://example.com/image.jpg'; axios .get(imageUrl, { responseType: 'arraybuffer' }) .then((response) => { const imageData = Buffer.from(response.data, 'binary'); // 在这里做一些处理,比如将图片保存到本地或者进行其他操作 }) .catch((error) => { console.error('无法获取图片:', error); }); ``` 3. 一旦你获得了图片的二进制数据,你可以根据需要将其保存到本地文件或进行其他处理。以下是将图片保存到本地文件的示例代码: ```javascript const fs = require('fs'); // 保存文件的路径和名称 const savePath = './path/to/save/image.jpg'; fs.writeFile(savePath, imageData, (err) => { if (err) { console.error('无法保存图片:', err); } else { console.log('图片保存成功!'); } }); ``` 请确保你遵守网站的使用规则和法律法规,尊重他人的版权和隐私。在取图片之前,请确保你有合法的授权或许可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值