注册 登录
编程论坛 VFP论坛

惭愧,网页问题,以前在红二版主的帮助下解决了,现在遇到了新情况。

wanguhssheng 发布于 2021-03-01 20:21, 2165 次点击
地址:http://www.
希望在日期和代码中分别填入“2021.02.19”和“300056”,得到质押率26.80的结果。
以前在红星二锅头版主的帮助下访问框架http://www.可以解决,一直用的很好,但上周开始不行了。
我查到了Referer: https://biz.和{queryDate: "2021.02.19", secCode: "300056"}
queryDate: "2021.02.19"
secCode: "300056"
但仍然不会使用。
9 回复
#2
sdta2021-03-01 21:32
程序代码:
CLEAR
OHTTP = CREATEOBJECT("MSXML2.XMLHTTP")
URLNAME = "https://biz./gpzy/queryStockPledgeInfo"
lcRq = "2021.02.19"
lcCode = "300056"
OHTTP.OPEN("POST", URLNAME, .F.)
OHTTP.SETREQUESTHEADER("Content-Type", "application/x-www-form-urlencoded")
OHTTP.SEND("queryDate=" + lcRq + "&secCde=" + lcCode)
IF OHTTP.STATUS = 200
    lcResult = STRCONV(OHTTP.RESPONSEBODY, 11)
ELSE
    MESSAGEBOX("网络故障")
    RETURN
ENDIF
lcResult = STREXTRACT(lcResult, '<tr style = "font-size:12px;">' + CHR(13) + CHR(10), "            </tr>" + CHR(13) + CHR(10))
ALINES(laStr1, lcResult, 4 + 1, CHR(13) + CHR(10))
lcStr = "日期,证券代码,证券简称,质押笔数,无限售股份质押数量(万),有限售股份质押数量(万),A股总股本(万),质押比例(%)"
ALINES(laStr2, lcStr, ",")
FOR lnj = 2 TO 9
    ?laStr2[lnj - 1] + ":" + STREXTRACT(laStr1[lnj], '>', "</td>")
ENDFOR
#3
sdta2021-03-01 21:42
只取质押比例
?"质押比例:" + STREXTRACT(laStr1[9], '>', "</td>")

后台数据网址并不是:http://www.
真实的后台数据网址是:https://biz.
在SEND()中必须要加入表单参数:2021.02.19 和 300056
最后表格中数据显示如下:
只有本站会员才能查看附件,请 登录

#4
wanguhssheng2021-03-01 21:57
真心赞美本论坛的人气和版主们。得空测试下。谢谢!
#5
sdta2021-03-01 22:23
以下是引用wanguhssheng在2021-3-1 21:57:29的发言:

真心赞美本论坛的人气和版主们。得空测试下。谢谢!

一个个下载太慢了,下载EXCEL文件再处理数据,不是效率更高啊
#6
wanguhssheng2021-03-02 18:24
尝试过分别下载沪市和深市的excel文件,用待回购数量除以总股本和这个方法获得的数据不一样。
#7
sdta2021-03-02 18:36
可以这些完整的数据
只有本站会员才能查看附件,请 登录
#8
wanguhssheng2021-03-02 18:49
用python改写了一下,得到了需要的数据,感觉表格数据的提取还是没有stda版主的方法巧妙。
import requests
import re

URLNAME = "https://biz.
response = requests.post(URLNAME,data={"queryDate":'2021.02.19',"secCde":'300056'})
rtxt = response.content.decode('utf-8')
print(re.findall('>(\d+.\d{1,2})</td>\r\n',rtxt)[-1])
#9
wanguhssheng2021-03-02 19:24
谢谢,这个还没有尝试过
#10
foxprosue2021-03-05 08:55
学习一下
1