nodejs提取网页内容

今天,在公司想用nodejs提取一下http://msdn.microsoft.com/zh-CN/library/windows/desktop/hh802935(v=vs.85).aspx 里面的API函数列表,做一个帮助文档。

谁知道,公司电脑上安装的是vs2005,在安装jsdom进行编译的时候一直报错,node-jquery也是一样。

晚上,回来了在自己电脑上又试了一遍,笔记本上装的是vs2013,能正常编译。

附上写的一段爬取网页代码。

var jsdom = require("jsdom");

jsdom.env("a.html",  // 这里可以使用文件系统路径,或者网页链接url
	["http://code.jquery.com/jquery.js"],
	function (errors, window) {
		var $ = window.$;
		$("table tr").each(function() {
			if ($(this).find("p").length <= 0) {
				return;
			}
			
			var tds = $(this).children("td");
			
			console.log($(tds[0]).text());
			
			var as = $(tds[1]).find("a");
			as.each(function() {
				console.log($(this).attr("href"), $(this).text());
			});
		});
	}
);


Node.js抓取网页中的图片通常使用的是`axios`库来发送HTTP请求获取HTML内容,然后利用如`cheerio`这样的DOM解析库来解析HTML并找到图片元素。以下是简单的步骤: 1. **安装依赖**:首先确保你已经安装了`axios`, `cheerio`以及用于保存文件的`fs`模块,可以分别通过npm安装: ``` npm install axios cheerio fs ``` 2. **编写代码**: ```javascript const axios = require('axios'); const cheerio = require('cheerio'); async function fetchImages(url) { try { // 发送GET请求获取网页内容 const response = await axios.get(url); // 使用cheerio解析HTML const $ = cheerio.load(response.data); // 找到所有的img标签 const imgElements = $('img'); // 遍历图片元素并提取src属性(图片URL) imgElements.each((index, element) => { const imgUrl = $(element).attr('src'); // 如果图片URL存在,则下载图片 if (imgUrl) { downloadImage(imgUrl); } }); } catch (error) { console.error('Error fetching images:', error); } } // 下载图片函数(假设使用`mkdirp`和`request`来下载,这里简化) function downloadImage(imgUrl) { // ... 实现图片下载逻辑 } // 调用函数并传入目标网址 fetchImages('https://example.com'); ``` 3. **注意事项**: - 你需要处理跨域访问的问题,如果网站禁止爬虫,可能需要设置User-Agent、Cookie等。 - 图片可能会有多种格式(例如jpg, png, gif),记得处理不同格式的图片。 - 爬虫操作应遵守网站的robots.txt规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值