iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
0
Big Data

研究爬蟲的世界系列 第 6

研究爬蟲的世界:真實範例 - 爬 MSN 新聞標題

  • 分享至 

  • xImage
  •  

現在讓我們牛刀小試一下,寫一個爬 MSN 新聞標題的範例,透過設定 interval 跟 maxConcurrency 即可達到前期所提的避免過度使用伺服器資源,至於 robots.txt 因為 Simple Crawler 預設就會遵守,所以就不需要再調整。

var ROOT_URL = 'https://www.msn.com/';

var Crawler = require('simplecrawler');
var crawler = new Crawler(ROOT_URL);
var cheerio = require('cheerio');

// 設定每次 request 的區間
crawler.interval = 60 * 1000;

// 限制只有一個併發
crawler.maxConcurrency = 1;

crawler.on('crawlstart', function() {
  console.log('Crawl starting ', ROOT_URL);
});

// 設定抓取條件,只抓取 url 中,子路徑是 news 的網頁。
crawler.addFetchCondition(function(queueItem, referrerQueueItem) {
  return queueItem.path.indexOf('/news/') > -1
})

crawler.on('fetchcomplete', function(queueItem, responseBuffer, response) {
  if (ROOT_URL == queueItem.url) return;
  var $ = cheerio.load(responseBuffer);
  var title = $('h1').html();
  console.log('news title:', title);
});

crawler.on('complete', function() {
  console.log('Finished!', ROOT_URL);
});

crawler.start();

附上原始碼



上一篇
研究爬蟲的世界:Simple Crawler 的特色
下一篇
研究爬蟲的世界 - Simple Crawler 常用事件
系列文
研究爬蟲的世界15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言