经管之家送您一份
应届毕业生专属福利!
求职就业群
感谢您参与论坛问题回答
经管之家送您两个论坛币!
+2 论坛币
- library(RCurl)
- library(rjson)
- library(XML)
- getdzjy.sh <- function(whichdate){
- BASEURL_SH = 'http://query.sse.com.cn/commonQuery.do'
- post_sh=c( jsonCallBack='jsonpCallback12345',isPagination='true',sqlId='COMMON_SSE_XXPL_JYXXPL_DZJYXX_L',stockId='',startDate= whichdate,endDate=whichdate,pageHelp.pageSize='10000',pageHelp.cacheSize='10000',num='')
- cn = postForm(BASEURL_SH, .params=post_sh, .opts = list(referer = 'http://www.sse.com.cn/disclosure/diclosure/block/'))
- m=regexpr('jsonpCallback12345.*\"data\":(?P<purejson>\\[.+\\])\\,\"sqlId\"', cn, perl=T)
- purejson = substr(cn, attr(m, 'capture.start'), attr(m, 'capture.start')+attr(m, 'capture.length')-1)
- purejson.parsed=fromJSON(purejson)
- outdf = Reduce(function(...) merge(...,all=T), lapply(purejson.parsed, data.frame))
- outdf2 = outdf[grepl('[36]\\d{5}|00[02]\\d{3}',outdf$stockid ),c('tradedate', 'stockid', 'abbrname', 'tradeprice', 'tradeqty', 'tradeamount', 'branchbuy', 'branchsell')]
- names(outdf2)=c("交易日期", "证券代码", "证券简称", "成交价格", "成交量", "成交金额",
- "买方营业部", "卖方营业部")
- outdf2
- }
- getdzjy.sz <- function(whichdate){
- BASEURL_SZ = 'http://www.szse.cn/szseWeb/FrontController.szse'
- post_sz=c(ACTIONID=7, CATALOGID='1265_xyjy',txtKsrq=whichdate,txtZzrq=whichdate, TABKEY='tab1')
- pgnum= -1
- pg=1
- datatable=NULL
- while(T){
- print( sprintf('pg=%d/pgnum=%d',pg,pgnum))
- if(pg==1){
- cn=getForm(BASEURL_SZ, .params = post_sz, .opts = list(referer='http://www.szse.cn/main/disclosure/news/dzjy/'))
- m=regexpr('tab1PAGECOUNT=(\\d+)&', cn, perl=T)
- pgnum=as.numeric(substr(cn, attr(m, 'capture.start'),attr(m, 'capture.start')+attr(m, 'capture.length')-1))
- }else{
- post_sz2= c(tab1PAGENUM=pg, tab1PAGECOUNT=pgnum)
- cn=getForm(BASEURL_SZ, .params =c( post_sz, post_sz2), .opts = list(referer='http://www.szse.cn/main/disclosure/news/dzjy/'))
- }
- cn.utf8=iconv(cn, 'gbk','utf-8')
- parsed = htmlParse(cn.utf8, encoding = 'utf-8')
- parsed.table=getNodeSet(parsed, '//table[@id="REPORTID_tab1"]')
- datatable.new = readHTMLTable( parsed.table[[1]])
- datatable=rbind(datatable, datatable.new)
- pg=pg+1
- if(pg>pgnum)break
- }
- datatable
- }
- main <- function(){
- TODAY= format(Sys.Date())
- a=getdzjy.sz(TODAY)
- b=getdzjy.sh(TODAY)
- dzjy_today=rbind(a,b)
- }
复制代码
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
|