365bet客服电话

同花顺如何导出股票交割单excel

同花顺如何导出股票交割单excel

今天分享一个股友比较关心的很实用的问题,同花顺千股千评网站的评语提取,废话不多说,直接上干货。

首先我们先看下网址:http://www.iwencai.com/stocks/comments

别小瞧这个网址,你们是搜不到的,不信你试试。现在我们打开网址瞧瞧是什么宝贝。

同花顺千股千评

接下来就是股友很关心的问题,就是怎么把网站内容取下来呢?别急,慢慢往下看。

加下来需要准备的工具:offcie的excel,一般人都有,然后复制下面的代码到VBA编辑窗口,如下图:

VBA编辑窗口

代码我也不私藏了:代码如下:

Sub qgqp()

Dim strText As String, n%, temp, r%, l%, brr, temp1, crr(1 To 4000, 1 To 13), g%, temp2

Sheets.Add after:=Sheets(Sheets.Count)

ActiveSheet.Name = Format(Date, "yyyy年m月d日")

brr = Array("id", "code", "name", "comment", "question", "created", "updated", "stockName", "latestPrices", "chg", "dde", "ddeUnit", "selfstockTimes")

With CreateObject("MSXML2.XMLHTTP")

For n = 1 To 103

.Open "POST", "http://www.iwencai.com/stocks/comments-read?per=30&page=" & n & "&plate=all HTTP/1.1", False

.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

.setRequestHeader "Referer", ""

.Send

strText = Convert(.responsetext)

temp = Split(strText, "{")

For r = 2 To UBound(temp)

g = g + 1

For l = 0 To UBound(brr) - 1

temp2 = Split(temp(r), Chr(34) & brr(l + 1) & Chr(34) & ":")(0)

temp1 = Split(temp2, Chr(34) & brr(l) & Chr(34) & ":")

crr(g, l + 1) = Replace(Replace(temp1(1), ",", ""), Chr(34), "")

Next

crr(g, 13) = Split(Split(temp(r), Chr(34) & brr(12) & Chr(34) & ":")(1), "}")(0)

Next

Next

End With

Cells.Clear

Range("a1").Resize(1, 13) = brr

Columns("A:B").NumberFormatLocal = "@"

Range("a2").Resize(3000, 13) = crr

MsgBox "OK"

End Sub

Function Convert(strText As String) As String

With CreateObject("MSScriptControl.ScriptControl")

.Language = "javascript"

Convert = .eval("('" & strText & "').replace(/&#\d+;/g,function(b){return String.fromCharCode(b.slice(2,b.length-1));});")

End With

End Function

运行代码得到结果如下图:

然后数据透视整理一下结果,可以直观看到下面需求信息,真香。

上面的程序可能会杀毒软件报毒,还有千万不要外传和使用频率过高采取数据,服务器会丰IP,如果有帮助要低调,悠着点,要不然大家都看不了。

不过上面只是技术交流使用,大家不要做买卖依据,股市有风险,入市谨慎。

关注我,我会定期发布一些实用的经典EXCEL实战案列,也许对你刚好有需要,而我及时雨的出现。

相关推荐