Board logo

标题: [文本处理] [己解决]求BAT代码,网页内容复制到文本? [打印本页]

作者: keshun    时间: 2019-3-8 23:28     标题: [己解决]求BAT代码,网页内容复制到文本?

这网站IE兼容性不好显示不全,用360浏览器打开就没问题。
批处理如何复制这个网页的全部内容到文本? 只要复制全部文字即可。

我是手动打开网页点全选、复制、粘贴,不知道有没有高人能用批处理做出来?
  1. @wget -O a.html http://www.bathome.net/thread-34437-1-1.html
  2. @HtoX32c /IP a.html
复制代码
这代码试过可以,但对我这个网页就不行。
作者: flashercs    时间: 2019-3-9 10:36

动态网页不能静态获取了,需要模拟浏览器,用IE.app COM对象即可,但是此站点对IE的兼容太差了,右边内容Transactions无法显示;所以下载的网页页不全; 要想全面,去用selenium+chromeDriver模拟浏览器
给个IE.App的vbs脚本:
用法:vbs脚本名 url 保存.html
  1. ' To fetch dynamic HTML document,and save to a file
  2. ' Usage: thisScript.vbs URL FilePathToSave
  3. Option Explicit
  4. Sub main()
  5.   On Error Resume Next
  6.   Dim objIE,objADO
  7.   If WSH.Arguments.Count <> 2 Then Exit Sub
  8.   Set objIE = WSH.CreateObject("InternetExplorer.Application", "evtIE_")
  9.   Set objADO = CreateObject("ADODB.Stream")
  10.   objIE.Visible = False
  11.   objIE.Navigate2 WSH.Arguments(0)
  12.   ShowError
  13.   Do While objIE.ReadyState <> 4
  14.     WSH.Sleep 10
  15.   Loop
  16.   With objADO
  17.     .Mode = 3
  18.     .Type = 2
  19.     .Charset = objIE.document.charset
  20.     .Open
  21.     .WriteText objIE.document.documentElement.outerHTML
  22.     .SetEOS
  23.     .SaveToFile WSH.Arguments(1), 2
  24.     .Close
  25.   End With
  26.   objIE.Quit
  27.   ShowError
  28.   Set objIE = Nothing
  29.   Set objADO = Nothing
  30. End Sub
  31. Sub ShowError()
  32.   If Err.Number <> 0 Then
  33.     WSH.Echo "Err # " & Err.Number & vbNewLine & _
  34.     "Description: " & Err.Description & vbnewline & _
  35.     "Source: " & Err.Source
  36.     Err.Clear
  37.   End If
  38. End Sub
  39. main
复制代码

作者: flashercs    时间: 2019-3-9 11:47

其实我也不知我说的啥...........
作者: keshun    时间: 2019-3-9 22:53

谢谢楼上高手的回复,看来复制这个站点的问题还是比较难,也不知能不能搞定??谢谢大家!!
作者: keshun    时间: 2019-3-10 18:16

本帖最后由 keshun 于 2019-4-8 09:59 编辑
  1. mshta http://bathome.net/s/hta/?echo=false download('https://www','1.html')
  2. HtoX32c /IP 1.html
复制代码
这代码调用在线脚本不能下载加载数据,不知有没高手帮帮忙,谢谢!!!!
作者: keshun    时间: 2019-4-7 00:04     标题: 打开网页延时下载复制文字

本帖最后由 keshun 于 2019-4-8 09:59 编辑

网址:https://www
这网址IE打开显示不全,只能用360极速浏览器,网页动态数据要5-8秒才能加载完成。
360极速浏览器:
C:\Users\Administrator\AppData\Local\360Chrome\Chrome\Application\360chrome.exe

我现用VBS模拟键盘操作“全选”“复制”文字写入a.txt虽然能完成,每10分钟要激活当前窗口运行一次太影响电脑的其它操作,又会受到QQ微信的弹窗信息影响。
  1. mshta http://bathome.net/s/hta/?echo=false download('https://www','1.html')
  2. HtoX32c /IP 1.html
复制代码
这代码动态加载数据文字复制不了。
网页加载完成后手动另存为网页全部,在用HtoX32c转就包含了动态数据,说明代码在没加载完成时就下载而无加载数据文字。

请求代码,要求打开网页延时下载复制文字,网页后台运行或最小化窗口运行,VBS或BAT都行,谢谢!!
作者: zaqmlp    时间: 2019-4-7 00:38

你要的是哪些动态数据?没必要下载整个网页吧
作者: keshun    时间: 2019-4-7 00:57

本帖最后由 keshun 于 2019-4-7 00:59 编辑

回复 2# zaqmlp


    整个网页数据文字复制下来,在经过文本处理就行了,条件越多越复杂,对效率要求不高。
作者: zaqmlp    时间: 2019-4-7 01:19

回复 3# keshun

你要哪些数据可以直接抓取,下载整个网页更麻烦
作者: keshun    时间: 2019-4-7 01:31

回复 4# zaqmlp


    就单个网页显示的文字内容,我现用VBS模拟键盘就能做到,只是不理想。
作者: codegay    时间: 2019-4-7 04:02

如果你需要别人帮你,你只需要说清楚你真正需要的是什么数据。比如截图把你想要的数据区圈出来。
作者: whiter    时间: 2019-4-7 11:54

动态加载的数据??
你打开页面然后按F12,选择network,最后查看哪个网址请求是你想要的, 单独拿出来请求就行, 用curl下载之
作者: keshun    时间: 2019-4-7 12:15

本帖最后由 keshun 于 2019-4-8 09:59 编辑

回复 12# whiter


    [attach]11910[/attach][attach]11910[/attach]
我想获取写入a.txt的文字内容如上图,买委与卖委各200组的3列动态数据,按F12,选择network显示的都是英文看不懂啊,谢谢!!
作者: whiter    时间: 2019-4-7 12:31

那你用火狐浏览器,火狐的F12是中文的
作者: keshun    时间: 2019-4-7 13:04

本帖最后由 keshun 于 2019-4-7 13:18 编辑

回复 14# whiter


    我试了下里面网址请求连接都不对,动态数据刷新速度很快会不会直接数据库读取的,这个网页本身就是纯数据无图片无视频,我本想复制显示文字不要求同步更新,这样会不会把问题复杂化了?谢谢!!
作者: CrLf    时间: 2019-4-7 13:37

  1. @echo off
  2. curl.exe "https://www.okex.me/v2/spot/markets/deep-deal?symbol=eos_usdt" >data.json
  3. mshta http://bathome.net/s/hta/index.html?string "obj=JSON.parse(type('data.json'));obj.data.asks.map(function(e,i){return e.price+'\t'+e.totalSize})" >买入.txt
  4. mshta http://bathome.net/s/hta/index.html?string "obj=JSON.parse(type('data.json'));obj.data.bids.map(function(e,i){return e.price+'\t'+e.totalSize})" >卖出.txt
复制代码

作者: whiter    时间: 2019-4-7 13:37

回复 15# keshun
你怎么试的? 网页里所有的数据请求都在那了,  会不会是参数什么的传的不对了
作者: CrLf    时间: 2019-4-7 14:35

本帖最后由 CrLf 于 2019-4-7 23:58 编辑

如果直接用第三方工具 jq 和 json2csv 的话:
  1. @echo off
  2. curl.exe "https://www.okex.me/v2/spot/markets/deep-deal?symbol=eos_usdt" >data.json
  3. <data.json jq -cM .data.asks[] | json2csv -k price,totalSize >买入.txt
  4. <data.json jq -cM .data.bids[] | json2csv -k price,totalSize >卖出.txt
复制代码

作者: keshun    时间: 2019-4-7 14:48

本帖最后由 keshun 于 2019-4-8 10:00 编辑

回复 16# CrLf


    十分感谢,代码效果很好!!
请教个问题
  1. https://www
复制代码
这网址在那能找到,能否告知,我在源代码和F12都没看到。
  1. https://www
复制代码
这个网址也麻烦帮我下,也是要复制相似的买卖动态数据,谢谢!!
作者: keshun    时间: 2019-4-7 15:20

本帖最后由 keshun 于 2019-4-8 10:00 编辑

回复 17# whiter


    [attach]11911[/attach]
  1. 巡查用的
  2. https://www
  3. 不知在那找到的,原地址
  4. https://www
  5. ,麻烦你也帮我找找,谢谢!!
复制代码

作者: codegay    时间: 2019-4-7 16:39

回复 20# keshun


   他网站上面有API接口说明。
作者: keshun    时间: 2019-4-7 17:45

本帖最后由 keshun 于 2019-4-8 10:01 编辑

回复 21# codegay


    谢谢回复,我去网站看了API接口说明,只是看不明白。能否帮我把下面两个网页的动态数据连接网址帮我查查?谢谢!!
  1. https://www
  2. https://www
复制代码

作者: xczxczxcz    时间: 2019-4-7 21:36

本帖最后由 xczxczxcz 于 2019-4-7 21:53 编辑

KAO  挖矿啊!
swapContractId=106
  1. https://www.okex.me/v2/perpetual/pc/public/instruments/EOS-USD-SWAP/candles?granularity=900&size=1000
  2. https://www.okex.me/v2/perpetual/pc/public/contracts/EOS-USD-SWAP/depth
复制代码
contractType=4
  1. 404
复制代码
这类好像不应该发。
作者: keshun    时间: 2019-4-7 22:57

本帖最后由 keshun 于 2019-4-8 09:57 编辑

十分感谢各位高手的指点,己解决,谢谢!!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2