【摘要】
集算器 SPL 支持抓取网页数据,根据抓取定义规则,可将网页数据下载到在本地进行统计分析。具体定义规则要求、使用详细情况,请前往乾学院:集算器 SPL 抓取网页数据!
网站上的数据源是我们进行统计分析的重要信息源。当我们浏览网页,看到自己感兴趣数据内容时,希望能够快速抓取网页上的数据,这对于数据分析相关工作来说极其重要,也是必备的技能之一。但是网络数据抓取大多需要复杂的编程知识,操作也比较繁琐。这里介绍如何用集算器 SPL 快速抓取网页数据。
1、基本流程图
2、抓取网页数据接口
3、定义规则
A、web_info
B、init_url
C、help_url
D、target_url
E、page_url
4、抓取股票历史数据
5、用户自定义程序
A、数据提取程序接口
B.数据保存程序接口
C、数据提取程序样例
D、数据保存程序样例
E、自定义程序的使用
1、基本流程图

从给定的开始地址进行遍历,将解析过滤后的网址放入下载地址队列,分成网址页 help_url 与下载页 target_url, 网址页只收集网址,下载页即能收集网址,也能提取数据,把提取到的数据保存起来。抓取网页数据直到遍历地址为空,则抓取工作结束。
2、抓取网页数据接口
web_crawl(jsonstr) 是抓取网页数据接口,参数 jsonstr 是定义规则的字符串,抓取数据时,根据定义规则遍历 URL、下载、提取、保存相关内容数据。
本接口依赖集算器外部库 webcrawlCli。它缺省安装在集算器软件的 esProc\extlib\webcrawlCli 路径下,在集算器的外部库设置中勾选 webcrawlCli 项, 重启集算器后,就可以使用 web_crawl 接口。

web_crawl 简单用法,如抓取指定股票数据,SPL 脚本 demo.dfx:
| A | |
| 1 | [{web_info:{save_path:'d:/tmp/data', save_post:'false'}},{init_url:['http://www.aigaogao.com/tools/history.html?s=600000']},{page_url:{extractby: "//div[@id='ctl16_contentdiv']/",class:'default'}}] |
| 2 | =web_crawl(A1) |
| 3 | =file("D:/tmp/data/raqsoft.com/600000.txt").import@cqt() |
获取股票代码 600000 的数据文件:

文件内容:

3、定义规则
根据基本流程图,将定义规则分成网站信息、初始网址、网址页、下载页、提取数据五部分。具体内容如下:
[
{ web_info:{domain:'www.banban.cn', save_path:'d:/tmp/data/webmagic', thread_size:2, cookie:{name:"jacker", laster:"2011"},
user_agent:'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0'}},
{ init_url:['https://www.banban.cn/gupiao/list_cybs.html', 'https://www.banban.cn/gupiao/list_sh.html']},
{ help_url:['gupiao/list_(sh|sz|cyb)\.html', '/shujv/zhangting/', '/agu/$']},
{ target_url:{reg_url:'/agu/365\d'}},
{ target_url:{filter:'gupiao/list_(sh|sz|cyb)\.html', reg_url:'gupiao/[sz|sh]?(60000\d)/',new_url:'http://www.aigaogao.com/tools/history.html?s=%s'}},
{ page_url:{filter:'history.html\?s=\d{6}', extractby: "//div[@id='ctl16_contentdiv']/"}},
{ page_url:{extractby: "//div[@id='content_all']/"}},
{ page_url:{filter:'/agu/365\d', extractby: "//div[@id='content']/"}}
]
规则简要说明:
web_info:网站信息,根据要下载的网站,设置域名、本地存储位置、用户代理信息、用户自定义程序等相关的信息。
init_url:初始网址,URL 遍历的入口网址。
help_url:网址页,定义网址页规则,收集网页内容中的 URL,但不提取此页面数据内容。
target_url:下载页,定义下载页规则,收集网页内容中的

本文介绍了如何使用集算器 SPL 抓取网页数据,包括基本流程、接口、定义规则和实际应用。通过 web_crawl 接口结合定义的规则,可以方便地抓取网页数据并进行统计分析。示例展示了抓取股票历史数据的过程,并提供了用户自定义数据提取和存储程序的接口及样例。
最低0.47元/天 解锁文章
686





