2014年1月9日木曜日

CRAWL_LINK_EXTRACT 関数

WS.WS.SITEMAP_BB_PARSE から呼び出される関数です。
リンクを抽出して、次のクロール対象となるようにキュー登録します。
完全オリジナルです。
 
create procedure WS.WS.CRAWL_LINK_EXTRACT (
  in _content varchar,
  in _regexp varchar,
  in _host varchar,
  in _root varchar
)
{
dbg_obj_print('WS.WS.CRAWL_LINK_EXTRACT');
declare link varchar;
link := regexp_match(_regexp,_content,1);
while(link is not null) {
  declare url varchar;
  url := regexp_substr(_regexp,link,1);
  if (left(url,2) = '//') {
    url := null;
  }
  if (left(url,1) = '/') {
    url := 'http://' || _host || url;
  } else {
    url := null;
  }
  if (regexp_match('https?://'||_host,url) is null) {
    url := null;
  }
  if (url is not null) {
    insert soft VFS_QUEUE (VQ_HOST, VQ_TS, VQ_URL, VQ_STAT, VQ_ROOT, VQ_OTHER) values (_host, now(), url, 'waiting', _root, NULL);
    dbg_obj_print(url);
  }
  link := regexp_match(_regexp,_content,1);
}
}

0 件のコメント:

コメントを投稿