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