手把手教你用Python查询你的物流信息

编程入门 行业动态 更新时间:2024-10-06 15:23:58

<a href=https://www.elefans.com/category/jswz/34/1765412.html style=手把手教你用Python查询你的物流信息"/>

手把手教你用Python查询你的物流信息

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

千淘万漉虽辛苦,吹尽狂沙始到金。

/1 前言/

    我们经常会去查快递的物流单号,可是这些物流单号是从哪里来的呢?

    快递鸟集合了多家快递公司查询接口,输入相应快递公司编码和快递单号就可以获取到对应的物流信息很方便快捷。

/2 项目目标/

    教会大家如何用Python编程去查询自己的物流信息。

/3 项目准备/

软件:PyCharm

需要的库:urllib.request、json

网站如下:


/4 项目分析/

一、如何获取真正的网址,拿到相对应的接口?

1、chrome浏览器F12检查,随便输入一个快递单号,点击查找。如图:

2、找到

query?type=shentong&postid=773036432685909&temp=0.0

这个文件。找到Request URL:复制网址。

3、分析网址:

=shentong&postid=773036432685909&temp=0.03191355265516216&phone=

4、可以看到postid就是我们的快递单号,type就是各个快递公司的名字拼音的简称。那等下就可以定义这个字典去存放各个公司名字的简称拼接网址。

5、找到Preview=>>对应的data可以看到context就是物流信息。等下可以通过js解析获取对应的字段。

/5 项目实现/

1、定义一个class类继承object。导入需要的库和网址。定义一个字典kd_dict存放快递公司简称。

import urllib.request
import jsonkd_dict = {1: 'shentong', 2: 'youzhengguonei', 3: 'yuantong', 4: 'shunfeng', 5: 'yunda', 6: 'zhongtong'}class YU(object):pass

2、建立查询框架。
  while True:print("输入要查询快递公司:")print("1.申通  2.EMS邮政  3.圆通 4.顺风 5.韵达 6.中通  0.退出\n ")choose = int(input("请选择您的快递公司:"))while choose not in range(0, 7):choose = int(input("抱歉暂不支持此公司请重新选择:"))if choose == 0:breakkd_num = input("请输入快递单号:")
3、对js文件进行解析。
    url = "=%s&postid=%s" % (kd_dict[choose], kd_num)response = urllib.request.urlopen(url)html = response.read().decode('utf-8')target = json.loads(html)
4、判断status的是不是200,是200才可以正常访问 ,获取对应的data。
 if status == '200':data = target['data']# print(data)data_len = len(data)# print(data_len)# print("\n")
5、for循环遍历,获取对应的字段。
  for i in range(data_len):print("\n时间: " + data[i]['time'])print("状态: " + data[i]['context'] + "")print("\n感谢使用!\n")break
else:print("输入有误请重新输入!\n")

6、程序循环。
   while True:YU.Check()out = input("按任意数字退出(其他键继续).........")if out >= '0' and out <= '7':breakelse:print("\n")continue

/6 效果展示/

1、点击绿色小三角运行,之后输入快递公司代表的编号。

2、输入你的快递单号,之后在控制台上可以看到显示结果,如下图所示。

/7 小结/

1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。

2、本文章就python爬取快递100,介绍了如何去拼接字符串,以及列表如何进行类型的转换。

3、通过文中Python程序,可以清晰的看到你的快递的物流信息。

5、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。

6、如果需要本文源码的话,请在公众号后台回复“快递信息”四个字进行获取,觉得不错,记得给个star噢。

------------------- End -------------------

往期精彩文章推荐:

  • 手把手教你用Python进行SSH暴力破解

  • 手把手教你用Python做个可视化的“剪刀石头布”小游戏

  • Python中的正则表达式及其常用匹配函数用法简介

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

更多推荐

手把手教你用Python查询你的物流信息

本文发布于:2024-02-07 03:46:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752751.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:手把手   教你用   物流   信息   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!