ygp-gdzwfw-gov-cn/assets/arrow-down-bold-62f05036.js
秦秋旭 5acb847bc1 优化爬虫:增量爬取、API参数优化、Excel兼容
主要变更:
1. 重命名 ygp_crawler.py -> main.py
2. API参数优化:
   - tradingProcess 固定传 "513,2C52,3C52" 精准筛选中标结果
   - pageSize 固定为 50 提高抓取效率
   - 通过 publishStartTime/publishEndTime 传入时间范围
3. 默认查询最近3个月(原为当天)
4. 增量爬取改为默认开启(移除 -i 参数)
5. CSV文件添加 UTF-8 BOM,Excel可直接打开
6. 更新 README.md 文档
7. 添加前端 JS 代码参考文件到 assets/ 目录

使用方法:
- 增量更新:python main.py
- 全量查询:rm results.csv && python main.py

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 00:37:07 +08:00

2 lines
4.9 KiB
JavaScript

import{a2 as _,bd as R,a8 as $,a3 as w,aN as G,aO as x,bV as z,r as B,ah as H,c as v,bu as W,cg as J,aa as y,ab as k,o as h,b as E,e as g,M as N,a_ as C,f as e,ap as F,E as b,$ as I,p as P,t as M,U as D,ag as V,an as K,a0 as Q,bf as X,bt as Y,ci as Z,h as ee,a7 as ae,K as oe,ar as le,z as se,bv as ne,aj as te,ak as L}from"./index-f1c6abff.js";const T=_({size:z,disabled:Boolean,label:{type:[String,Number,Boolean],default:""}}),re=_({...T,modelValue:{type:[String,Number,Boolean],default:""},name:{type:String,default:""},border:Boolean}),A={[R]:l=>$(l)||w(l)||G(l),[x]:l=>$(l)||w(l)||G(l)},U=Symbol("radioGroupKey"),j=(l,c)=>{const n=B(),o=H(U,void 0),d=v(()=>!!o),m=v({get(){return d.value?o.modelValue:l.modelValue},set(i){d.value?o.changeEvent(i):c&&c(R,i),n.value.checked=l.modelValue===l.label}}),r=W(v(()=>o==null?void 0:o.size)),u=J(v(()=>o==null?void 0:o.disabled)),s=B(!1),p=v(()=>u.value||d.value&&m.value!==l.label?-1:0);return{radioRef:n,isGroup:d,radioGroup:o,focus:s,size:r,disabled:u,tabIndex:p,modelValue:m}},ie=["value","name","disabled"],de=y({name:"ElRadio"}),ue=y({...de,props:re,emits:A,setup(l,{emit:c}){const n=l,o=k("radio"),{radioRef:d,radioGroup:m,focus:r,size:u,disabled:s,modelValue:p}=j(n,c);function i(){K(()=>c("change",p.value))}return(a,t)=>{var f;return h(),E("label",{class:b([e(o).b(),e(o).is("disabled",e(s)),e(o).is("focus",e(r)),e(o).is("bordered",a.border),e(o).is("checked",e(p)===a.label),e(o).m(e(u))])},[g("span",{class:b([e(o).e("input"),e(o).is("disabled",e(s)),e(o).is("checked",e(p)===a.label)])},[N(g("input",{ref_key:"radioRef",ref:d,"onUpdate:modelValue":t[0]||(t[0]=S=>F(p)?p.value=S:null),class:b(e(o).e("original")),value:a.label,name:a.name||((f=e(m))==null?void 0:f.name),disabled:e(s),type:"radio",onFocus:t[1]||(t[1]=S=>r.value=!0),onBlur:t[2]||(t[2]=S=>r.value=!1),onChange:i},null,42,ie),[[C,e(p)]]),g("span",{class:b(e(o).e("inner"))},null,2)],2),g("span",{class:b(e(o).e("label")),onKeydown:t[3]||(t[3]=D(()=>{},["stop"]))},[I(a.$slots,"default",{},()=>[P(M(a.label),1)])],34)],2)}}});var pe=V(ue,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio.vue"]]);const ce=_({...T,name:{type:String,default:""}}),me=["value","name","disabled"],be=y({name:"ElRadioButton"}),fe=y({...be,props:ce,setup(l){const c=l,n=k("radio"),{radioRef:o,focus:d,size:m,disabled:r,modelValue:u,radioGroup:s}=j(c),p=v(()=>({backgroundColor:(s==null?void 0:s.fill)||"",borderColor:(s==null?void 0:s.fill)||"",boxShadow:s!=null&&s.fill?`-1px 0 0 0 ${s.fill}`:"",color:(s==null?void 0:s.textColor)||""}));return(i,a)=>{var t;return h(),E("label",{class:b([e(n).b("button"),e(n).is("active",e(u)===i.label),e(n).is("disabled",e(r)),e(n).is("focus",e(d)),e(n).bm("button",e(m))])},[N(g("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":a[0]||(a[0]=f=>F(u)?u.value=f:null),class:b(e(n).be("button","original-radio")),value:i.label,type:"radio",name:i.name||((t=e(s))==null?void 0:t.name),disabled:e(r),onFocus:a[1]||(a[1]=f=>d.value=!0),onBlur:a[2]||(a[2]=f=>d.value=!1)},null,42,me),[[C,e(u)]]),g("span",{class:b(e(n).be("button","inner")),style:Q(e(u)===i.label?e(p):{}),onKeydown:a[3]||(a[3]=D(()=>{},["stop"]))},[I(i.$slots,"default",{},()=>[P(M(i.label),1)])],38)],2)}}});var O=V(fe,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-button.vue"]]);const ve=_({id:{type:String,default:void 0},size:z,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:""},fill:{type:String,default:""},label:{type:String,default:void 0},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0}}),ge=A,ye=["id","aria-label","aria-labelledby"],_e=y({name:"ElRadioGroup"}),he=y({..._e,props:ve,emits:ge,setup(l,{emit:c}){const n=l,o=k("radio"),d=X(),m=B(),{formItem:r}=Y(),{inputId:u,isLabeledByFormItem:s}=Z(n,{formItemContext:r}),p=a=>{c(R,a),K(()=>c("change",a))};ee(()=>{const a=m.value.querySelectorAll("[type=radio]"),t=a[0];!Array.from(a).some(f=>f.checked)&&t&&(t.tabIndex=0)});const i=v(()=>n.name||d.value);return ae(U,oe({...le(n),changeEvent:p,name:i})),se(()=>n.modelValue,()=>{n.validateEvent&&(r==null||r.validate("change").catch(a=>ne()))}),(a,t)=>(h(),E("div",{id:e(u),ref_key:"radioGroupRef",ref:m,class:b(e(o).b("group")),role:"radiogroup","aria-label":e(s)?void 0:a.label||"radio-group","aria-labelledby":e(s)?e(r).labelId:void 0},[I(a.$slots,"default")],10,ye))}});var q=V(he,[["__file","/home/runner/work/element-plus/element-plus/packages/components/radio/src/radio-group.vue"]]);const Ie=te(pe,{RadioButton:O,RadioGroup:q}),Ve=L(q);L(O);const Ee={viewBox:"0 0 1024 1024",width:"1.2em",height:"1.2em"},Se=g("path",{fill:"currentColor",d:"M104.704 338.752a64 64 0 0 1 90.496 0l316.8 316.8l316.8-316.8a64 64 0 0 1 90.496 90.496L557.248 791.296a64 64 0 0 1-90.496 0L104.704 429.248a64 64 0 0 1 0-90.496z"},null,-1),Be=[Se];function Re(l,c){return h(),E("svg",Ee,Be)}const $e={name:"ep-arrow-down-bold",render:Re};export{Ie as E,$e as _,Ve as a};