标题: [文件操作] 【已解决】批处理如何下载网页中的多页表格到本地excel里? [打印本页]
作者: uuu888s 时间: 2015-3-4 12:40 标题: 【已解决】批处理如何下载网页中的多页表格到本地excel里?
本帖最后由 uuu888s 于 2015-3-5 11:29 编辑
现在想把http://data.eastmoney.com/zrz/dxzf.html 里的35页数据下载到本地excel里
试了下 excel---数据---导入外部数据---新建web查询 貌似第一页都不能完整导入
请教大牛有什么思路 可以一次性下载该数据(共35页)
感谢!
作者: uuu888s 时间: 2015-3-4 12:49
本帖最后由 uuu888s 于 2015-3-4 13:00 编辑
http://data.eastmoney.com/zrz/data.aspx?type=dx&style=zf&page=1&pageSize=1850&sortType=G&sortRule=-1&jsname=wKPapAYy&rt=47514817
貌似所有数据连接 如何把这些数据 还原到一个excel表里?
作者: pcl_test 时间: 2015-3-4 14:16
本帖最后由 pcl_test 于 2015-3-4 14:58 编辑
回复 2# uuu888s
1、浏览器打开http://data.eastmoney.com/zrz/da ... AYy&rt=47514817,并把所有的内容复制粘贴到1.txt里
2、打开1.txt,用记事本替换功能把 "," 替换成<br> ,把数据首尾不必要的字符删掉(这步也可用word打开1.txt,用word替换功能把 "," 替换成^p ,这样就可以忽略第三步)
3、把1.txt重命名为1.html,并用浏览器打开,把所有的内容复制粘贴到2.txt里
4、把2.txt重命名为2.csv,打开2.csv另存为xls表格即可
作者: uuu888s 时间: 2015-3-4 14:38
本帖最后由 uuu888s 于 2015-3-4 14:43 编辑
回复 3# pcl_test
试了下 可行 但是这个数据经常要更新 每次都这样搞有点麻烦了 能否写个批处理 感谢~~
作者: uuu888s 时间: 2015-3-4 14:43
能否写个批处理 感谢~~
作者: Batcher 时间: 2015-3-4 17:25
回复 3# pcl_test
把网页文件转换为纯文本的命令行工具HtoX32c
http://bbs.bathome.net/thread-1974-1-1.html
作者: CrLf 时间: 2015-3-4 18:25
你要的 xls 在这里,保存为 test.hta 运行即可:- <script src=http://data.eastmoney.com/zrz/data.aspx?type=dx&style=zf&page=1&pageSize=1850&sortType=G&sortRule=-1&jsname=wKPapAYy&rt=47514817></script>
- <script src=http://www.bathome.net/lib/xdate.js></script>
-
- <script>
- xls = ['股票代码\t股票简称\t相关链接\t发行方式\t发行总数(万股)\t发行价格\t最新价\t发行日期\t增发上市日期\t锁定期']
- var data = wKPapAYy.data
- for(var i=0;i<data.length;i++){
- var I = data[i].split(",");
- var z = I[0],
- y = I[1],
- r = (I[4] == "") ? "-" : I[4],
- l = (I[5] == "") ? "-" : I[5],
- a = (isNaN(I[7]) || I[7] == "") ? I[7] : parseFloat(I[7]).toFixed(2),
- j = (isNaN(I[8]) || I[8] == "") ? I[8] : parseFloat(I[8]).toFixed(2),
- w = (I[9] == "" || I[9] == "-") ? "-" : new XDate(Date.parse(I[9].replace(/-/ig, "/"))).toString("MM-dd"),
- t = (I[11] == "" || I[11] == "-") ? "-" : new XDate(Date.parse(I[11].replace(/-/ig, "/"))).toString("MM-dd"),
- _sdq = I[14] == "" ? "&-" : I[14],
- _hq_link = "http://quote.eastmoney.com/" + z + ".html"
-
- xls.push([z,y,_hq_link,r,l,a,j,w,t,_sdq].join('\t'))
- }
-
- var fso = new ActiveXObject('Scripting.FileSystemObject')
- var ts = fso.CreateTextFile('输出.xls',true,true)
- ts.Write(xls.join('\r\n'))
- ts.Close()
-
- alert('Bingo!')
-
- close()
- </script>
复制代码
作者: uuu888s 时间: 2015-3-5 10:39
本帖最后由 uuu888s 于 2015-3-11 08:56 编辑
大牛 我想再在xls里添加自定义的一列,该列里的数值为 最新价减去发行价( 也就是差价G-H )这个怎么在你的代码里实现
作者: CrLf 时间: 2015-3-5 12:13
回复 8# uuu888s
[z,y,_hq_link,r,l,a,j,w,t,_sdq] 改成 [z,y,_hq_link,r,l,a,j,j-a,w,t,_sdq] 即可,标题栏那里应该很直观,你自己看着改下
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |