以下是一个使用Node.js实现的简单网页爬虫示例,使用了axios
进行HTTP请求和cheerio
解析页面数据。
首先,确保安装了必要的包:
npm install axios cheerio
然后,可以创建一个简单的爬虫脚本:
const axios = require('axios');
const cheerio = require('cheerio');
async function fetchHTML(url) {
try {
const { data } = await axios.get(url);
return data;
} catch (error) {
console.error('Error fetching HTML:', error);
}
}
async function crawl(url) {
try {
const html = await fetchHTML(url);
if (html) {
const $ = cheerio.load(html);
// 假设我们要抓取的是一个页面上的所有标题
$('h2').each((index, element) => {
console.log($(element).text());
});
}
} catch (error) {
console.error('Crawling error:', error);
}
}
const url = 'https://example.com'; // 替换为你想爬取的网站
crawl(url);
这个脚本定义了一个fetchHTML
函数来获取网页内容,以及一个crawl
函数来爬取指定URL的数据。在crawl
函数中,我们使用cheerio.load
来加载获取的HTML内容,并使用选择器选取我们想要的元素。在这个例子中,我们选取了所有h2
标题的文本内容。
请注意,这个爬虫示例仅用于教学目的,实际的网站可能会有更复杂的反爬措施,如JavaScript渲染的内容、登录保护、频率限制等。在编写爬虫时,应始终遵守网站的robots.txt
规则,并尊重版权和隐私政策。