温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

(Krake)简易数据抓取范例

发布时间:2020-04-10 23:40:02 来源:网络 阅读:669 作者:乄尐 栏目:web开发

之前在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  




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI