node爬虫学习

133 阅读1分钟
  1. 安装依赖库

在终端中执行以下命令来创建一个新的Node.js项目并安装所需的依赖库:

mkdir my-crawler
cd my-crawler
npm init -y
npm install axios cheerio

**

其中,axios库用于向网络上的服务器发起请求,cheerio库用于解析HTML,并提供了与jQuery语法类似的API。

  1. 获取网页内容

在代码中,我们可以使用axios库来向指定的网址发起请求,然后获取其返回的内容。以下是一个简单的例子:

const axios = require('axios');

axios.get('https://www.google.com')
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.log(error);
  });

**

在上面的代码中,我们向Google的主页发起了一个GET请求,并在控制台输出其返回的HTML内容。

  1. 解析HTML内容

解析HTML内容可以使用cheerio库。以下是一个通过axioscheerio库获取并解析网页内容的示例:

const axios = require('axios');
const cheerio = require('cheerio');

axios.get('https://www.google.com')
  .then((response) => {
    const $ = cheerio.load(response.data);
    console.log($('title').text());
  })
  .catch((error) => {
    console.log(error);
  });

**

在上面的代码中,我们使用cheerio库来将HTML字符串解析成一个可操作的DOM结构,并使用jQuery语法获取了HTML中的title标签的文本内容。

  1. 获取指定链接中的所有链接

在爬虫中,通常需要获取指定页面中的所有链接。以下是一个示例代码:

const axios = require('axios');
const cheerio = require('cheerio');

axios.get('https://www.google.com')
  .then((response) => {
    const $ = cheerio.load(response.data);
    const links = [];
    $('a').each((i, elem) => {
      links.push($(elem).attr('href'));
    });
    console.log(links);
  })
  .catch((error) => {
    console.log(error);
  });

在上面的代码中,我们通过遍历页面中的所有a标签,获取了其中的href属性,然后将其存入一个数组中。

以上就是使用Node.js编写爬虫的基本步骤。如果需要更复杂的爬虫,还需要考虑内容的存储、多线程爬虫、反爬虫机制等问题。