nodejs爬取网页内容
时间: 2023-07-12 16:03:33 浏览: 108
要使用 Node.js 爬取网页内容,可以使用第三方库 `axios` 或 `request` 来发送 HTTP 请求获取网页内容,同时使用 `cheerio` 或 `jsdom` 来解析 HTML 文档。
以下是一个使用 `axios` 和 `cheerio` 的例子:
```javascript
const axios = require('axios');
const cheerio = require('cheerio');
axios.get('https://www.example.com')
.then(response => {
const html = response.data;
const $ = cheerio.load(html);
const title = $('title').text();
console.log(title);
})
.catch(error => {
console.log(error);
});
```
这个例子中,我们使用 `axios` 发送 GET 请求到 `https://www.example.com`,然后获取响应的 HTML 内容。接着,我们使用 `cheerio` 将 HTML 转换为可操作的 DOM 对象,然后使用 jQuery 的语法来获取网页的标题,并将标题输出到控制台。
注意,如果要爬取的网站需要登录或使用代理等特殊操作,需要使用相应的技术来处理。另外,爬取网页内容时也要注意遵守网站的规则,不要过度请求或泄露用户隐私。
相关问题
nodejs爬取网页内容并把每个页面分别下载出来,文件格式为.md
要将每个页面下载为 `.md` 文件,可以在上面的代码基础上进行简单的修改。我们可以使用 `fs` 模块来将获取到的内容保存为文件,同时可以使用 `slugify` 等库来生成文件名。
以下是一个修改后的例子:
```javascript
const axios = require('axios');
const cheerio = require('cheerio');
const slugify = require('slugify');
const fs = require('fs');
// 要下载的页面列表
const urls = [
'https://www.example.com/page1',
'https://www.example.com/page2',
'https://www.example.com/page3',
];
// 循环遍历页面列表
urls.forEach(url => {
axios.get(url)
.then(response => {
const html = response.data;
const $ = cheerio.load(html);
// 使用 slugify 生成文件名
const filename = slugify($('title').text()) + '.md';
// 将内容保存为文件
fs.writeFile(filename, html, err => {
if (err) {
console.error(err);
return;
}
console.log(`${filename} saved successfully!`);
});
})
.catch(error => {
console.error(error);
});
});
```
在这个例子中,我们首先定义了要下载的页面列表 `urls`,然后使用 `axios` 和 `cheerio` 来获取每个页面的 HTML 内容。接着,使用 `slugify` 生成文件名,并使用 `fs` 将 HTML 内容保存为 `.md` 文件。最后,输出成功保存文件的信息。
需要注意的是,这个例子中直接将 HTML 内容保存为 `.md` 文件,实际上需要根据网页的内容来进行相应的处理,例如将 HTML 转换为 Markdown 格式。
nodejs爬取豆瓣
可以使用 Node.js 中的 request 和 cheerio 模块来实现爬取豆瓣网站的数据。具体步骤如下:
1. 安装 request 和 cheerio 模块:
```
npm install request cheerio
```
2. 使用 request 模块发送请求,获取网页内容:
```javascript
const request = require('request');
request('https://movie.douban.com/top250', (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body);
}
});
```
3. 使用 cheerio 模块解析网页内容,获取需要的数据:
```javascript
const request = require('request');
const cheerio = require('cheerio');
request('https://movie.douban.com/top250', (error, response, body) => {
if (!error && response.statusCode == 200) {
const $ = cheerio.load(body);
$('div.item').each((i, element) => {
const title = $(element).find('span.title').text();
console.log(title);
});
}
});
```
以上代码可以获取豆瓣电影 Top250 的电影名称。
阅读全文