找到了请求的网址和格式,code参数是
JO_9753,JO_92226,JO_9754,JO_71,JO_70,JO_73,JO_72,JO_75,JO_9751,JO_9752,JO_92224,JO_92225,JO_92276,JO_76,JO_74,JO_92277,JO_92278
后面拼了一个时间戳,请求内容返回结果如下:
里面是一个的数据,看了一下觉得太复杂了,因为不知道对应的变量名字,得一个个找,所幸搜了一下这个quote_json,找着了解析的源码getQuote(),美滋滋
把js搞下来
function getQuote(){
var codes = "JO_9753,JO_92226,JO_9754,JO_71,JO_70,JO_73,JO_72,JO_75,JO_9751,JO_9752,JO_92224,JO_92225,JO_92276,JO_76,JO_74,JO_92277,JO_92278";
var url="https://api.jijinhao.com/quoteCenter/realTime.htm?codes="+codes;
$.getScript(url,function(){
if(quote_json != null && quote_json != ""){
var codeArr = codes.split(',');
for(var i in codeArr){
var jCode = codeArr[i];
var quote = quote_json[jCode];
if(quote != undefined) {
var digits = 2;
digits = quote.digits;
if(isNaN(digits)) digits=2;
//最新价
var q63Val = quote.q63;
q63Val = format(q63Val,digits);
if(isNaN(q63Val)) q63Val="----";
//涨跌值
var q70Val = quote.q70;
q70Val = format(q70Val,digits);
if(isNaN(q70Val)) q70Val="----";
//涨跌幅
var q80Val = quote.q80;
q80Val = format(q80Val,2);
if(isNaN(q80Val)) q80Val="----";
//开盘价
var q1Val = quote.q1;
q1Val = format(q1Val,digits);
if(isNaN(q1Val)) q1Val="----";
//收盘价
var q2Val = quote.q2;
q2Val = format(q2Val,digits);
if(isNaN(q2Val)) q2Val="----";
//最高价
var q3Val = quote.q3;
q3Val = format(q3Val,digits);
if(isNaN(q3Val)) q3Val="----";
//最低价
var q4Val = quote.q4;
q4Val = format(q4Val,digits);
if(isNaN(q4Val)) q4Val="----";
//时间
var qTimeVal = quote.time;
if(isNaN(qTimeVal)){
qTimeVal = "----";
}else{
qTimeVal = new Date(qTimeVal).Format("yyyy-MM-dd hh:mm:ss");
}
//买入价
var q5Val=quote.q5;
q5Val=format(q5Val,digits);
if(isNaN(q5Val)) q5Val="----";
//卖出价
var q6Val=quote.q6;
q6Val=format(q6Val,digits);
if(isNaN(q6Val)) q6Val="----";
//商品英文名
var showCode = quote.showCode;
if(showCode == undefined)showCode="----";
//单位
var unit=quote.unit;
if(unit == undefined || unit=="")unit="----";
if(q63Val == 0) {
q63Val = "<em>----</em>";
q70Val = "<em>----</em>";
q80Val = "<em>----</em>";
showCode = "<em>"+showCode+"</em>";
} else {
if(q70Val > 0){
q63Val = "<em class='red'>" + q63Val + "</em>";
q70Val = "<em class='red'>"+q70Val+"</em>";
q80Val = "<em class='red'>"+q80Val+"%</em>";
showCode = "<em>"+showCode+"</em>";
} else if(q70Val < 0){
q63Val = "<em class='green'>"+q63Val+"</em>";
q70Val = "<em class='green'>"+q70Val+"</em>";
q80Val = "<em class='green'>"+q80Val+"%</em>";
showCode = "<em>"+showCode+"</em>";
} else if(q70Val == 0){
q63Val = "<em>"+q63Val+"</em>";
q70Val = "<em>"+q70Val+"</em>";
q80Val = "<em>"+q80Val+"%</em>";
showCode = "<em>"+showCode+"</em>";
}
}
if(q1Val != 0) {
if (parseFloat(q1Val) > parseFloat(q2Val)) {
q1Val = "<em class='red'>"+q1Val+"</em>";
} else if (parseFloat(q1Val) < parseFloat(q2Val)) {
q1Val = "<em class='green'>"+q1Val+"</em>";
} else {
q1Val = "<em>"+q1Val+"</em>";
}
}
if(q3Val != 0) {
if (parseFloat(q3Val) > parseFloat(q2Val)) {
q3Val = "<em class='red'>"+q3Val+"</em>";
} else if (parseFloat(q3Val) < parseFloat(q2Val)) {
q3Val = "<em class='green'>"+q3Val+"</em>";
} else {
q3Val = "<em>"+q3Val+"</em>";
}
}
if(q4Val != 0) {
if (parseFloat(q4Val) > parseFloat(q2Val)) {
q4Val = "<em class='red'>"+q4Val+"</em>";
} else if (parseFloat(q4Val) < parseFloat(q2Val)) {
q4Val = "<em class='green'>"+q4Val+"</em>";
} else {
q4Val = "<em>"+q4Val+"</em>";
}
}
if(q5Val != 0) {
if (parseFloat(q5Val) > parseFloat(q2Val)) {
q5Val = "<em class='red'>"+q5Val+"</em>";
} else if (parseFloat(q5Val) < parseFloat(q2Val)) {
q5Val = "<em class='green'>"+q5Val+"</em>";
} else {
q5Val = "<em>"+q5Val+"</em>";
}
}
if(q6Val != 0) {
if (parseFloat(q6Val) > parseFloat(q2Val)) {
q6Val = "<em class='red'>"+q6Val+"</em>";
} else if (parseFloat(q6Val) < parseFloat(q2Val)) {
q6Val = "<em class='green'>"+q6Val+"</em>";
} else {
q6Val = "<em>"+q6Val+"</em>";
}
}
q2Val = "<em>"+q2Val+"</em>";
$("#"+jCode+"_price").html(q63Val);
$("#"+jCode+"_sellPrice").html(q6Val);
$("#"+jCode+"_buyPrice").html(q5Val);
$("#"+jCode+"_updownPercent").html(q70Val);
$("#"+jCode+"_updown").html(q80Val);
$("#"+jCode+"_open").html(q1Val);
$("#"+jCode+"_high").html(q3Val);
$("#"+jCode+"_low").html(q4Val);
$("#"+jCode+"_close").html(q2Val);
$("#"+jCode+"_time").html(qTimeVal);
$("#"+jCode+"_showCode").html(showCode);
$("#"+jCode+"_unit").html(unit);
} else {
$("#"+jCode+"_price").html("<em>----</em>");
$("#"+jCode+"_sellPrice").html("<em>----</em>");
$("#"+jCode+"_buyPrice").html("<em>----</em>");
$("#"+jCode+"_updownPercent").html("<em>----</em>");
$("#"+jCode+"_updown").html("<em>----</em>");
$("#"+jCode+"_open").html("<em>----</em>");
$("#"+jCode+"_high").html("<em>----</em>");
$("#"+jCode+"_low").html("<em>----</em>");
$("#"+jCode+"_close").html("<em>----</em>");
$("#"+jCode+"_time").html("<em>----</em>");
$("#"+jCode+"_showCode").html("<em>----</em>");
$("#"+jCode+"_unit").html("<em>----</em>");
}
}
}
});
}
其中有很多判断数值然后给他标红或者标绿的操作,可以去掉,然后----转换为None,不需要的html代码也去掉,只保留数据,处理一下时间戳转换日期时间格式
然后开始写代码:
还是先搞一个中文对照的字典,拼接请求,做好header,将返回结果转换为json字典,然后逐个击破,此代码仅供学习研究,不要用于非法用途,否则后果自负
import datetime
import time
import requests
import json
gold_dict = {
"Au(T+D)": "黄金T+D",
"mAu(T+D)": "m黄金T+D",
"Ag(T+D)": "白银T+D",
"AuT+D": "黄金T+D",
"mAuT+D": "m黄金T+D",
"AgT+D": "白银T+D",
"Au9999": "黄金9999",
"Au9995": "黄金9995",
"Au100g": "金条100g",
"Au50g": "金条50g",
"Ag999": "白银999",
"AuT+N1": "黄金T+N1",
"AuT+N2": "黄金T+N2",
"SGiAu100g": "gi黄金100g",
"SGiAu9999i": "i黄金9999",
"SGiAu995i": "i黄金995",
"Ag9999": "白银9999",
"PT9995": "铂金9995",
"NYAuTN06": "纽约金TN06",
"NYAuTN12": "纽约金TN12",
}
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**






**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
g.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)**
<img src="https://img-community.csdnimg.cn/images/fd6ebf0d450a4dbea7428752dc7ffd34.jpg" alt="img" style="zoom:50%;" />