找回密码
 加入
搜索
查看: 5123|回复: 6

[网络通信] 网站数据获取!

[复制链接]
发表于 2021-3-11 21:45:12 | 显示全部楼层 |阅读模式
悬赏10金钱已解决
本帖最后由 叶子2019 于 2021-3-13 08:53 编辑

实在搞不定了,请高手出招。
从这个网站获取数据(https://www.jisilu.cn/data/cbnew/#cb
1、溢价率排序(从低到高);
2、排除“Q”标记的“合格投资者”,排除红色感叹号的近期转股,排除蓝色感叹号“满足强赎条件”,排除正股涨跌大于8%;
3、取前10个;
就这些条件。

附件: 您需要 登录 才可以下载或查看,没有账号?加入

最佳答案

查看完整内容

数据提取成数组OK 但是数据内容字段定义,排序你自己处理吧。。 #include $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[UBound($aArray)][128] For $i = 0 To UBound($aArray) -1 $tmp = StringSplit($aArray[$i], ",") For $s = 1 To $tmp[0] $bArray[$i][$s] = $tmp[$ ...
发表于 2021-3-11 21:45:13 | 显示全部楼层
数据提取成数组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[UBound($aArray)][128]
For $i = 0 To UBound($aArray) -1
        $tmp = StringSplit($aArray[$i], ",")
        For $s = 1 To $tmp[0]
        $bArray[$i][$s] = $tmp[$s]
        Next
Next
_ArrayDisplay($bArray)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
chamlien + 10 赞一个!

查看全部评分

发表于 2021-3-12 06:22:23 | 显示全部楼层

点评

正解  发表于 2021-3-12 09:40
发表于 2021-3-12 10:27:55 | 显示全部楼层
正则可以做到。
不过我做不到,写2个条件的正则我都要调试半天。
你这么多条件,只有A版能完成。
发表于 2021-3-13 00:57:56 | 显示全部楼层
根据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[10][100]
$Edge = 0
For $i = 0 To UBound($bArray) - 1
        $tmp = StringSplit($aArray[$i + $Edge], ",")
        For $s = 1 To $tmp[0]
                        $TTmp = StringRegExp($tmp[$s], '":(.*)"?', 3)
                        If IsArray($TTmp) Then
                                $TTmp[0] = StringReplace($TTmp[0],'{"bond_id":"',"")
                                $TTmp[0] = StringReplace($TTmp[0],'"',"")
                                $TTmp[0] = StringReplace($TTmp[0],'}',"")
                                If($s = 49 And $TTmp[0] == "Q") Or ($s = 80 And ($TTmp[0] == "B" Or $TTmp[0] == "R")) Then
                                        $i -= 1
                                        $Edge += 1
                                        ExitLoop 
                                EndIf
                                $bArray[$i][$s] = $TTmp[0]
                        EndIf
        Next
Next
_ArrayDisplay($bArray)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
叶子2019 + 10 赞一个!

查看全部评分

 楼主| 发表于 2021-3-13 08:52:49 | 显示全部楼层
差不多解决了问题,剩下的我自己慢慢做了,积分给4楼的兄弟了,同时也谢谢yuantian,辛苦了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 14:27 , Processed in 0.094466 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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