前言

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

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

项目目标

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

项目准备

软件:PyCharm

需要的库:urllib.request、json

网站:https://www.kuaidi100.com

项目分析

如何获取真正的网址,拿到相对应的接口? chrome浏览器F12检查,随便输入一个快递单号,点击查找。如图:

找到

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

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

https://www.kuaidi100.com/query?type=shentong&postid=773036432685909&temp=0.03191355265516216&phone=

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

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

项目实现

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

import urllib.request

import json

kd_dict = {1: 'shentong', 2: 'youzhengguonei', 3: 'yuantong', 4: 'shunfeng', 5: 'yunda', 6: 'zhongtong'}

class YU(object):

pass

建立查询框架。

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:

break

kd_num = input("请输入快递单号:")

对js文件进行解析

url = "http://www.kuaidi100.com/query?type=%s&postid=%s" % (kd_dict[choose], kd_num)

response = urllib.request.urlopen(url)

html = response.read().decode('utf-8')

target = json.loads(html)

判断status的是不是200,是200才可以正常访问 ,获取对应的data

if status == '200':

data = target['data']

# print(data)

data_len = len(data)

# print(data_len)

# print("\n")

for循环遍历,获取对应的字段。

for i in range(data_len):

print("\n时间: " + data[i]['time'])

print("状态: " + data[i]['context'] + "")

print("\n感谢使用!\n")

break

else:

print("输入有误请重新输入!\n")

程序循环。

while True:

YU.Check()

out = input("按任意数字退出(其他键继续).........")

if out >= '0' and out <= '7':

break

else:

print("\n")

continue

效果展示

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

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

小结

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

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

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

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

如果需要本文源码的话,请在公众号后台回复

0911四个字进行获取。

-END-

python爬取物流信息_手把手教你用Python爬取快递100查询你的物流信息相关推荐

  1. python爬虫爬取房源_手把手教你用Python网络爬虫爬取新房数据

    项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以「惠民之家」 ...

  2. python进行数据预测_手把手教你用Python进行时间序列分解和预测

    原标题:手把手教你用Python进行时间序列分解和预测 作者:Mohit Sharma 翻译:数据派THU-王闯(Chuck) 预测是一件复杂的事情,在这方面做得好的企业会在同行业中出类拔萃.时间序列 ...

  3. python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...

    原标题:手把手教你用Python玩转时序数据,从采样.预测到聚类丨代码 原作 Arnaud Zinflou 郭一璞 编译 时序数据,也就是时间序列的数据. 像股票价格.每日天气.体重变化这一类,都是时 ...

  4. python自助电影售票机_手把手教你用python抢票回家过年(代码简单)

    首先看看如何快速查看剩余火车票? 当你想查询一下火车票信息的时候,你还在上12306官网吗?或是打开你手机里的APP?下面让我们来用Python写一个命令行版的火车票查看器, 只要在命令行敲一行命令就 ...

  5. python如何编游戏_手把手教你用python写游戏

    引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,项目来自 ...

  6. python时间序列动图_手把手教你用Python进行时间序列分解和预测

    来源:数据派THU(ID:DatapiTHU) ▔ 作者:Mohit Sharma 翻译:王闯(Chuck) 校对:王可汗 预测是一件复杂的事情,在这方面做得好的企业会在同行业中出类拔萃.时间序列预测 ...

  7. python预测实例教程_手把手教你用Python库Keras做预测(附代码)-阿里云开发者社区...

    当你在Keras中选择好最合适的深度学习模型,就可以用它在新的数据实例上做预测了.但是很多初学者不知道该怎样做好这一点,我经常能看到下面这样的问题: "我应该如何用Keras对我的模型作出预 ...

  8. python读取mt4数据_手把手教你使用Python进行数据获取和作图

    最近在学习Python3做数据分析.就尝试用COT和汇率数据来练习一下.毕竟不实际找个东西做一下碰不到问题,也学不会啊. 话不多说,目标就是(1)抓取网络的COT数据,(2)结合MT4导出的汇率数据, ...

  9. python如何训练模型生产_手把手教你用Python构建你的第一个多标签图像分类模型(附案例)...

    你正在处理图像数据吗?我们可以使用计算机视觉算法来做很多事情: 对象检测 图像分割 图像翻译 对象跟踪(实时),还有更多-- 这让我思考--如果一个图像中有多个对象类别,我们该怎么办?制作一个图像分类 ...

最新文章

  1. linux 网络管理器未运行怎么解决,Ubuntu下提示网络管理器未运行解决方法
  2. 利用现有资源快速实现汉语专用分词系统
  3. SpringMVC+Hibernate +MySql+ EasyUI实现POI导出Excel(二)
  4. ThinkPHP简单的验证码实现
  5. 2015-05-31
  6. leetcode125验证回文串
  7. 线性代数【14】线性变换 linear transformation
  8. oracle 学习第一天
  9. flask异步操作_从Flask到FastAPI的平滑迁移
  10. 浅谈CS0433的错误的类型
  11. 基于名字自动化之原理(1)
  12. 代码急转弯——Tupper(塔珀自指公式)
  13. AttributeError: module ‘win32com.gen_py.00020905-0000-4B30-A977-D214852036FF
  14. 笔试题-2023-思远半导体-数字IC设计【纯净题目版】
  15. 手机页面下拉刷新效果
  16. 一个简单有趣的小问题,枫叶嵌套问题的完美解决
  17. java基本数据类型 string,String是基本的数据类型吗?
  18. iMAG(爱码哥)新建应用
  19. linux alc权限,Linux账号管理与ALC权限设定(二)
  20. 全网疯传!Java利用TCP协议实现客户端与服务器通信【附通信源码

热门文章

  1. ChatGPT 免费体验来了
  2. RIoTBoard开发板系列笔记(十二)—— gstreamer + vpu实现视频硬件解码播放
  3. 从 Git 到区块链
  4. js实现点击按钮,弹出新窗口
  5. 斧乃木余接win10主题分享
  6. putty连接设备时报错 Can’t agree a key change algorithm
  7. mt7697芯片hdk资料mt7697芯片教程资料
  8. MT7628路由器工作原理,MT7628处理器相关参数介绍
  9. r语言做绘制精美pcoa图_如何绘制精美的PCoA图形
  10. 身体质量指数(BMI)是对体重的健康测量。它的值可以通过将体重(以公斤为单位)除以身高(以米为单位)的平方值得到。编写程序,提示用户输入体重(以公斤为单位)以及身高(以米为单位),然后显示BMI。