1、xmlhttp/winhttp法:
用xmlhttp/winhttp模拟向服务器发送请求,接收服务器返回的数据。
优点:效率高,基本无兼容性问题。
缺点:需要借助如fiddler的工具来模拟http请求。
2、IE/webbrowser法:
创建IE控件或webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器 *** 作,获取浏览器页面的数据。
优点:这个方法可以模拟大部分的浏览器 *** 作。所见即所得,浏览器能看到的数据就能用代码获取。
缺点:各种d窗相当烦人,兼容性也确实是个很伤脑筋的问题。上传文件在IE里根本无法实现。
3、QueryTables法:
因为它是excel自带,所以勉强也算是一种方法。其实此法和xmlhttp类似,也是GET或POST方式发送请求,然后得到服务器的response返回到单元格内。
优点:excel自带,可以通过录制宏得到代码,处理table很方便
。代码简短,适合快速获取一些存在于源代码的table里的数据。
缺点:无法模拟referer等发包头
也可以利用采集工具进行采集网页端的数据,无需写代码。
1,先表明一下你的说法,“从浏览器中复制表格到一个文本文档或剪贴板”表格复制后放入文体文档是只能保留文字和数据,这种格式为TXT文档,站点有提供下载功能,
另站点还提供XLS格式的EXCEL表格下载。
如果你只需要开奖数据,以上已经足够。
2,做VBA动态更新分析表所用到的。
经过查看你提供的网页源代码,复制了关于数据这一段:
<div class="kai_tab" id="fast_issue_content">
<table class="kuai_tab fucai_tab" id="fastIssueList">
<thead>
<tr>
<td class="kuai_w1">期数</td>
<td class="kuai_w2">开奖号码</td>
<td>开奖时间</td>
<td>中奖组合</td>
<td></td>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
并查了class和ID属性值,所引用的是经过JavaScript处理调用数据库的值,不是一个文本文件的集合,
如:双色球的文体文件如下:http://www.17500.cn/getData/ssq.TXT
这种才可好处理,示列如下:
Private Sub CommandButton1_Click()
Range("A3:AC3500").Clear
k3dshijihao = "http://www.17500.cn/getData/ssq.TXT"
d3s = "WData3D_All"
Cells(2, 1) = "开奖期号"
Cells(2, 2) = "开奖日期"
Cells(2, 3) = "红"
Cells(2, 4) = "球"
Cells(2, 5) = "大 "
Cells(2, 6) = "小"
Cells(2, 7) = "顺"
Cells(2, 8) = "序"
Cells(2, 9) = "蓝"
Cells(2, 10) = "红"
Cells(2, 11) = "球"
Cells(2, 12) = "出"
Cells(2, 13) = "球"
Cells(2, 14) = "顺"
Cells(2, 15) = "序"
Cells(2, 16) = "投注总额"
Cells(2, 17) = "奖池金额"
Cells(2, 18) = "一等注数"
Cells(2, 19) = "一等金额"
Cells(2, 20) = "二等注数"
Cells(2, 21) = "二等金额"
Cells(2, 22) = "三等注数"
Cells(2, 23) = "金额"
Cells(2, 24) = "四等注数"
Cells(2, 25) = "金额"
Cells(2, 26) = "五等注数"
Cells(2, 27) = "金额"
Cells(2, 28) = "六等注数"
Cells(2, 29) = "金额"
cz = k3dshijihao: czmc = d3s
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT" &cz, Destination:=Range("A3"))
.Name = czmc
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("A" &(Application.Count(Range("a1:a3000")))).Select
End
End Sub
将以上代码贴到VBA中,再加个按钮指定它,试试结果,如果是你想要的这种结果
可以将引用的http://www.17500.cn/getData/ssq.TXT。改为你网站下载来的TXT文件路径,再做相关VBA代修改就可以完成!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)