基于神箭手的简易爬虫示范--切糕王子--


说明:原文【点我】的第一课。


1、如果是第一次接触爬虫,搜索一些范例,比如相对最流行的scrapy(Python)的来说,你看到完整的但是感觉很长的代码,就头大了。 网页上的示范代码,还有一个可能的也是很大的问题是因为不同网站的对代码的支持方式,导致的缩进问题,而刚好Python对缩进的报错,在较多的代码的时候,是很让人抓狂的。

2、好在现在已经有很多第三方平台,可以大大简化一些基础代码的编写,所以以神箭手 官网【点我】 为基础,一个简单的范例。

3、代码分析:

var configs = {
    domains: ["www.qiegaowz.com"],
    scanUrls: ["http://www.qiegaowz.com/product/Default.html"],
    contentUrlRegexes: ["http://www\\.qiegaowz\\.com/product/.{36}\\.html"],
    helperUrlRegexes: ["http://www\\.qiegaowz\\.com/product/Default\\.html"], //可留空
    fields: [
            {
                // 第一个抽取项
                name: "thumbnail",
                selector: "//div[contains(@class,'showpic')]/img/@src", //默认使用XPath
                required: true //是否不能为空
            },
            {  
                // 商品标题  
                name: "title",  
                selector: "//div[contains(@class,'showproduct')]/h1" 
            }, 
            {
                // 其他抽取项
                name: "content",
                selector: "//div[contains(@class,'shownewdes')]" 
            }
    ]
};

var crawler = new Crawler(configs);
crawler.start();

4、从代码长度来看相对简单,而且只需要根据domains,scanUrls,fields内容等对应修改。原文已经对需要修改的地方,做了较详细的解释,同时,也需要对正则表达式,xpath有基础了解。必须了解:正则的点和问号都是要转义的,并且转义需要两个\,另外关于正则表达式,可参考廖雪峰的网站内容 【点我】

5、最后总结下:依托神箭手,写爬虫的主要核心步骤就是3步:

1. 选入口Url 
2. 限定内容页和中间页
3. 写内容页抽取规则