Python爬取贵金属行情2_python爬取上海金交所黄金价格(1)

    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”,
}

def get_quote():
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”
url = “https://api.jijinhao.com/quoteCenter/realTime.htm?codes=” + codes+“&_=”+str(int(time.time() * 1000))
headers = {
‘authority’: ‘api.jijinhao.com’,
‘accept’: ‘/’,
‘accept-language’: ‘zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6’,
‘referer’: ‘https://quote.cngold.org/gjs/jjs.html’,
‘sec-ch-ua’: ‘“Chromium”;v=“122”, “Not(A:Brand”;v=“24”, “Microsoft Edge”;v=“122”’,
‘sec-ch-ua-mobile’: ‘?0’,
‘sec-ch-ua-platform’: ‘“Windows”’,
‘sec-fetch-dest’: ‘script’,
‘sec-fetch-mode’: ‘no-cors’,
‘sec-fetch-site’: ‘cross-site’,
‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0’
}
payload={}
response = requests.request(“GET”, url, headers=headers, data=payload)
# print(response.text)
# response = requests.get(url)
# print(response.status_code)
json_str = response.text[16:]
# print(json_str)

# 将字符串转换为字典对象
# 提取quote_json的值
quote_json = json.loads(json_str)
# print(quote_json)
# print(type(quote_json))

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

g.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值