Easier web scraping using node.js and jQuery
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
node-scraper
一个小巧的模块,让网站抓取变得简单。使用 node.js 和 jQuery。
安装
通过 npm:
$ npm install scraper
示例
简单用法
第一个参数是字符串形式的 URL,第二个参数是回调函数,提供一个 jQuery 对象,其中 "body" 属性代表抓取到的网站内容,第三个参数是来自请求的信息对象。
var scraper = require('scraper');
scraper('http://search.twitter.com/search?q=javascript', function(err, jQuery) {
if (err) {throw err}
jQuery('.msg').each(function() {
console.log(jQuery(this).text().trim()+'\n');
});
});
高级用法
第一个参数是一个包含用于内部使用的 "request" 实例设置的对象,第二个参数是回调函数,提供一个 jQuery 对象,其中 "body" 属性代表抓取到的网站内容,第三个参数是来自请求的信息对象。
var scraper = require('scraper');
scraper(
{
'uri': 'http://search.twitter.com/search?q=nodejs'
, 'headers': {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'
}
}
, function(err, $) {
if (err) {throw err}
$('.msg').each(function() {
console.log($(this).text().trim()+'\n');
});
}
);
并行抓取
第一个参数是一个数组,包含字符串或对象,第二个参数是回调函数,提供一个 jQuery 对象,其中 "body" 属性代表抓取到的网站内容,第三个参数是来自请求的信息对象。
你可以通过在第三个参数添加一个包含 reqPerSec 的选项对象来限制每秒的请求数量。
var scraper = require('scraper');
scraper(
[
'http://search.twitter.com/search?q=javascript'
, 'http://search.twitter.com/search?q=css'
, {
'uri': 'http://search.twitter.com/search?q=nodejs'
, 'headers': {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'
}
}
, 'http://search.twitter.com/search?q=html5'
]
, function(err, $) {
if (err) {throw err;}
$('.msg').each(function() {
console.log($(this).text().trim()+'\n');
});
}
, {
'reqPerSec': 0.2 // 每个外部请求之间等待5秒
}
);
参数
第一(必需)
包含关于要抓取的页面信息
字符串
'http://www.nodejs.org'
或者
请求对象
{
'uri': 'http://search.twitter.com/search?q=nodejs'
, 'headers': {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)'
}
}
或者
数组(如果你想要从多个 URL 抓取)
[
urlString
, urlString
, requestObject
, urlString
]
第二(可选)
允许你处理抓取数据的回调函数。
function(err, $) {
if (err) {throw err;}
$('.msg').each(function() {
console.log($(this).text().trim()+'\n');
}
}
第三(可选)
此参数是一个包含整体抓取器设置的对象。
- reqPerSec: 浮点数;(让你能够调整抓取频率,避免对抓取服务器造成过大压力)