oldwain随便写 http://oldwain.itpub.net/
<a href="http://oldwain.itpub.net">oldwain随便写</a>
用oracle分析itpub徽章(1) -- 获取数据
上一篇 /
下一篇 2006-09-12 00:00:00
/ 个人分类:侃也白侃
本文试图通过使用Oracle的utl_http package来抓取itpub的徽章列表,并通过对获取的数据进行一些简单的查询,模拟投资市场来分析这些徽章的价格趋势。
?5l4[MxF9Q1gG@0step1: 在开始获取数据前, 先建立相应的表,用来存放数据:
create table medals (
snaptime date, -- 数据抓取时间
item varchar2(20), -- 徽章id
userid varchar2(10), -- itpub用户id
username varchar2(100), -- itpub用户名
getdate date -- 得到徽章日期
);
create table medalname (
medalclass varchar2(10), -- 徽章类别
medalid varchar2(10), -- 徽章id
medalname varchar2(30) -- 徽章名称
);
step2: 创建一个pkg_medals package, 用于抓取数据:
create or replace package pkg_medals is
procedure get_medallist(medalid varchar2, snaptime date) ;
procedure getanimals(snaptime date default sysdate) ;
procedure getflowers(snaptime date default sysdate) ;
procedure getgems(snaptime date default sysdate) ;
procedure getfishes(snaptime date default sysdate) ;
procedure getbugs(snaptime date default sysdate) ;
procedure getbees(snaptime date default sysdate) ;
procedure getspecials(snaptime date default sysdate);
procedure getclocks(snaptime date default sysdate);
procedure getpens(snaptime date default sysdate);
procedure getall(snaptime date default sysdate) ;
end pkg_medals;
包体限于篇幅,不在此列出, 可以在此下载
step3: 执行抓取过程:
set serveroutput on
exec pkg_medals.getall
如果只想抓取生肖的信息,可以:
exec pkg_medals.getanimals
当然,你也可以通过建立job, 每日定时进行抓取。
程序可改进之处:
1. 合并后的内容用varchar2存放, 所以不能超过32768, 好的办法是取消合并的步骤,对每个piece去处理,然后形成行。
2. 为了思路清晰, 用了很多遍循环, 会降低性能, 可以通过改写减少循环次数。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: