找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29592|回复: 8

[文件操作] 【已解决】批处理如何下载网页中的多页表格到本地excel里?

[复制链接]
发表于 2015-3-4 12:40:16 | 显示全部楼层 |阅读模式
本帖最后由 uuu888s 于 2015-3-5 11:29 编辑

现在想把http://data.eastmoney.com/zrz/dxzf.html 里的35页数据下载到本地excel里
试了下 excel---数据---导入外部数据---新建web查询    貌似第一页都不能完整导入
请教大牛有什么思路 可以一次性下载该数据(共35页)
感谢!
 楼主| 发表于 2015-3-4 12:49:50 | 显示全部楼层
本帖最后由 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表里?
发表于 2015-3-4 14:16:17 | 显示全部楼层
本帖最后由 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表格即可

评分

参与人数 1技术 +1 收起 理由
uuu888s + 1 不错

查看全部评分

 楼主| 发表于 2015-3-4 14:38:10 | 显示全部楼层
本帖最后由 uuu888s 于 2015-3-4 14:43 编辑

回复 3# pcl_test


  试了下 可行 但是这个数据经常要更新  每次都这样搞有点麻烦了 能否写个批处理   感谢~~
 楼主| 发表于 2015-3-4 14:43:16 | 显示全部楼层
能否写个批处理   感谢~~
发表于 2015-3-4 17:25:49 | 显示全部楼层
回复 3# pcl_test


把网页文件转换为纯文本的命令行工具HtoX32c
http://bbs.bathome.net/thread-1974-1-1.html
发表于 2015-3-4 18:25:39 | 显示全部楼层
你要的 xls 在这里,保存为 test.hta 运行即可:
  1. <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>
  2. <script src=http://www.bathome.net/lib/xdate.js></script>

  3. <script>
  4. xls = ['股票代码\t股票简称\t相关链接\t发行方式\t发行总数(万股)\t发行价格\t最新价\t发行日期\t增发上市日期\t锁定期']
  5. var data = wKPapAYy.data
  6. for(var i=0;i<data.length;i++){
  7.         var I = data[i].split(",");
  8.         var z = I[0],
  9.                 y = I[1],
  10.                 r = (I[4] == "") ? "-" : I[4],
  11.                 l = (I[5] == "") ? "-" : I[5],
  12.                 a = (isNaN(I[7]) || I[7] == "") ? I[7] : parseFloat(I[7]).toFixed(2),
  13.                 j = (isNaN(I[8]) || I[8] == "") ? I[8] : parseFloat(I[8]).toFixed(2),
  14.                 w = (I[9] == "" || I[9] == "-") ? "-" : new XDate(Date.parse(I[9].replace(/-/ig, "/"))).toString("MM-dd"),
  15.                 t = (I[11] == "" || I[11] == "-") ? "-" : new XDate(Date.parse(I[11].replace(/-/ig, "/"))).toString("MM-dd"),
  16.             _sdq = I[14] == "" ? "&-" : I[14],
  17.             _hq_link = "http://quote.eastmoney.com/" + z + ".html"
  18.            
  19.     xls.push([z,y,_hq_link,r,l,a,j,w,t,_sdq].join('\t'))
  20. }

  21. var fso = new ActiveXObject('Scripting.FileSystemObject')
  22. var ts = fso.CreateTextFile('输出.xls',true,true)
  23. ts.Write(xls.join('\r\n'))
  24. ts.Close()

  25. alert('Bingo!')

  26. close()
  27. </script>
复制代码

评分

参与人数 1技术 +1 收起 理由
uuu888s + 1 很好

查看全部评分

 楼主| 发表于 2015-3-5 10:39:26 | 显示全部楼层
本帖最后由 uuu888s 于 2015-3-11 08:56 编辑

大牛 我想再在xls里添加自定义的一列,该列里的数值为 最新价减去发行价( 也就是差价G-H )这个怎么在你的代码里实现
发表于 2015-3-5 12:13:15 | 显示全部楼层
回复 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] 即可,标题栏那里应该很直观,你自己看着改下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 15:17 , Processed in 0.023915 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表