网站数据获取!
本帖最后由 叶子2019 于 2021-3-13 08:53 编辑实在搞不定了,请高手出招。
从这个网站获取数据(https://www.jisilu.cn/data/cbnew/#cb)
1、溢价率排序(从低到高);
2、排除“Q”标记的“合格投资者”,排除红色感叹号的近期转股,排除蓝色感叹号“满足强赎条件”,排除正股涨跌大于8%;
3、取前10个;
就这些条件。
数据提取成数组OK 但是数据内容字段定义,排序你自己处理吧。。
#include <Array.au3>
$text = InetRead("https://www.jisilu.cn/data/cbnew/cb_list/",3)
$text = BinaryToString($text,4)
Local $aArray = StringRegExp($text, '{"id":.*?}},', 3)
;_ArrayDisplay($aArray)
Dim $bArray
For $i = 0 To UBound($aArray) -1
$tmp = StringSplit($aArray[$i], ",")
For $s = 1 To $tmp
$bArray[$i][$s] = $tmp[$s]
Next
Next
_ArrayDisplay($bArray)
https://www.jisilu.cn/data/cbnew/cb_list/?___jsl=LST___t=1615501096443应该在这里面吧。
正则可以做到。
不过我做不到,写2个条件的正则我都要调试半天。
你这么多条件,只有A版能完成。
:face (32): 根据4#的代码,改第一版
#include <Array.au3>
$text = InetRead("https://www.jisilu.cn/data/cbnew/cb_list/",3)
$text = BinaryToString($text,4)
Local $aArray = StringRegExp($text, '{"id":.*?}},', 3)
;~ _ArrayDisplay($aArray)
Dim $bArray
$Edge = 0
For $i = 0 To UBound($bArray) - 1
$tmp = StringSplit($aArray[$i + $Edge], ",")
For $s = 1 To $tmp
$TTmp = StringRegExp($tmp[$s], '":(.*)"?', 3)
If IsArray($TTmp) Then
$TTmp = StringReplace($TTmp,'{"bond_id":"',"")
$TTmp = StringReplace($TTmp,'"',"")
$TTmp = StringReplace($TTmp,'}',"")
If($s = 49 And $TTmp == "Q") Or ($s = 80 And ($TTmp == "B" Or $TTmp == "R")) Then
$i -= 1
$Edge += 1
ExitLoop
EndIf
$bArray[$i][$s] = $TTmp
EndIf
Next
Next
_ArrayDisplay($bArray)
差不多解决了问题,剩下的我自己慢慢做了,积分给4楼的兄弟了,同时也谢谢yuantian,辛苦了。
页:
[1]