热门IT资讯网

(Krake)简易数据抓取范例

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,之前在github上发布了一个Scrapy的抓取项目,然后收到了来自 krake.io 的邮件,准确的说是推广邮件,抱着好奇心进去看了看krake 基于 EC2提供了在线的数据抓取服务,不过对于国人来

之前在github上发布了一个Scrapy的抓取项目,然后收到了来自 krake.io 的邮件,准确的说是推广邮件,抱着好奇心进去看了看

krake 基于 EC2提供了在线的数据抓取服务,不过对于国人来说 遗憾的一点是他是收费的

不过注册有送500点券,也就是能免费抓500条数据 也太少了点 呵呵...

为了节省您的时间,如果感觉不必要的 请就此打住。

下面是花了大概半个下午的时间在 krake上的测试

感觉他用于结构简单、关系清晰的数据采集还是不错的(ps:由于api文档说明不太完善,加之鄙人的英文不是太好,复杂的东西就没去深究了)

好了,废话不多说了,上范例代码:

//一个抓取对象   说明//周公解梦生活篇  http://astro.sina.com.cn/jian/jiemeng/shenghuo.html// 此页面的 中间部分采用 iframe 加载了 http://astro.sina.com.cn/jian/4997.shtml// 然后到达最终页面 如 http://astro.sina.com.cn/jian/4997.shtml{    //  抓取网址    origin_url : ["http://astro.sina.com.cn/jian/jiemeng/shenghuo.html",],                                                                           //  采集的数据 规则    columns : [        {            col_name : '第一层',            xpath : '//iframe[@id="content"]',//选中iframe            required_attribute : 'src',            options : {                columns : [ /** An array of column_object **/                    {//一个数据列为一个对象                        col_name :  '第二层',                        //dom_query : '.css_class_name_of_columns'//jQuery 选择器   包含jQuery时可使用如下规则进行分析                        xpath : '//div[@id="wrap"]/h4',//'//xpath/to/elements'// xPath 选择器   默认使用                        required_attribute : "innerText",                    },                    {                        col_name : '子项内容',                        xpath : '//div[@id="wrap"]/p/a',//最终层                        required_attribute : 'href',//required_attribute_type //你希望采集的属性  比如 innerHTML innerText textContent href src                        options : { //扩展一个新的 抓取对象                            columns : [                                {                                    col_name : '标题',                                    xpath : '//div[@id="wrap"]/h4',                                    required_attribute : "innerText",                                },                                   {                                    col_name : '内容',                                    xpath : '//div[@id="wrap"]/p',                                    required_attribute : "innerHTML",                                },                            ],                            wait : 0,                        },                    }                ],            },            wait : 0,        }    ],                                                                                                                                                  //  分页规则    next_page : '',//next_page_object,包含 dom_query 或 xPath 选择器 的对象                                                                                                                                                  //  cookie 验证规则     cookies : '',//cookies_object,包含 cookie内容的 对象数组                                                                           //  需要提取的数据列 可选择columns 中的部分数据导出    column_filter : [],//column_filter_object                                                                                                                                                       //  是否包含jQuery(可使用 jquery dom选择器) 需注意是否会导致原页面js冲突问题    exclude_jquery : true,//boolean                                                                                                                                                       //  页面数据采集等待时间(用于Ajax延迟)    wait : 3,//integer   默认0秒}

如果有兴趣,你也可以试试哦

当然在需求比较复杂的时候,建议还是直接使用Scrapy这类的抓取框架,就不要在这种小的在线工具代码上浪费时间了(恐怕对于国人来说,收费才是最要命的 哈哈)


这边顺便附上 测试的项目地址吧

https://krake.io/krakes/445-testkrake




0