神箭手云爬虫第一个demo

  • A+
所属分类:系统文档

爬虫采用JavaScript编写, 下面以雷锋网为例, 来看一下我们的爬虫长什么样子:

var configs = {
    domains: ["leiphone.com"],
    scanUrls: ["http://www.leiphone.com/search?s=%E5%B1%B1%E5%AF%A8%E6%89%8B%E6%9C%BA&site=article"],
    contentUrlRegexes: ["http://www\\.leiphone\\.com/news/\\d+/.+\\.html"],
    helperUrlRegexes: ["http://www\\.leiphone\\.com/search\\?s=%E5%B1%B1%E5%AF%A8%E6%89%8B%E6%9C%BA&site=article(&page=\\d+)?"],
    fields: [
        {            // 抽取内容页的文章标题
            name: "article_title",
            selector: "//h1[contains(@class,'headTit')]",
            required: true
        },
        {            // 抽取内容页的文章内容
            name: "article_content",
            selector: "//div[contains(@class,'lph-article-comView')]",
            required: true
        },
        {            // 抽取内容页的文章发布日期
            name: "article_publish_time",
            selector: "//td[contains(@class,'time')]",
            required: true
        },
        {            // 抽取内容页的文章作者
            name: "article_author",
            selector: "//div[contains(@class,'name')]//span",
            required: true
        }
    ]
};// afterExtractField回调函数: 将爬取到的时间转换为时间戳, 以便发布数据时用configs.afterExtractField = function(fieldName, data, page) {    if (fieldName == "article_publish_time") {        var timestamp = Date.parse(data);        return isNaN(timestamp) ? "0" : timestamp/1000 + "";
    }    return data;
};var crawler = new Crawler(configs);
crawler.start();

爬虫的整体框架就是这样, 首先定义了一个configs对象, 里面设置了待爬网站的一些信息, 然后通过调用var crawler = new Crawler(configs);crawler.start();来配置并启动爬虫.

configs对象如何定义, 后面会作详细介绍.

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: