邮政国际件运费批量查询 (仿前台查询)
第10行填写邮件号所在列
第4行填写前台登录邮政抓取的cookie
运行脚本,建议配合定时任务
受WPS本身限制脚本一次只能查50个单号或是运行10分钟
邮政Cookie不断心跳换IP可用
//代码区
//邮政链接
const eubcookie = "jdpt.session.id=00000000000000000000000000000000; GRAYSCALE=0"
//邮政Cookie 记得及时更新
const sleeptime = 1000
// 延时时间/毫秒
const j=2
// ################指定列,固定值,你的邮件号在第几列###############
const usedRange = Application.ActiveSheet.UsedRange
for (let i = usedRange.Row; i <= usedRange.RowEnd; i++) {
const row = Application.ActiveSheet.Rows(i) // 遍历行
const rg = row.Columns(j)
const rgr1 = row.Columns(j+1) // 判断是否跳过
const rgr2 = row.Columns(j+2)
const text = rg.Text
const textr1 = rgr1.Text
var str =text;
if (str.match("LV")||str.match("EV"))
{
if( textr1 == "" || textr1 == "无结果")
{
Time.sleep(sleeptime) // 前置延时
let respeub = HTTP.fetch(urleub + text,{
method:"POST",
timeout:2000,
headers:{Cookie: eubcookie },})
let textr2 = respeub.text()
if (textr2.match("waybillNoStr"))
{
let a = textr2.search("<!-- 邮资1(元) -->") //标记
let b = textr2.search("<!-- 邮件重量(克)-->")
let datatotalFee = textr2.slice(a,b-59) //字符串截断
let c = datatotalFee.search("text-align:center")
let totalFee = datatotalFee.slice(c+19,a+b-59)
if (totalFee == ""){rgr1.Value = "无结果" }//已交运无结果
else { rgr2.Value = totalFee, rgr1.Value = "已查询"}
}
else
{
rgr1.Value = "单号错误" //未交运无结果或Cookie过期
}
}
}
else //可以在下面新增扩展
{
}
}
社区管理员