首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用python查询快递

本文目标利用python实现简单的快递查询

开发工具:

python版本:3.7.1

使用的库:request 和 json

安装Python并添加到环境变量,pip安装需要的相关模块即可。

实现原理:

爬取快递信息很简单,只需要根据快递单号获得其可能所属的快递公司,然后分别获取这些快递公司该快递单号的数据即可。

快递信息数据源:

https://www.kuaidi100.com/

代码实现:

01 分析快递100

在搜索框输入快递单号时,下方会自动显示可选的快递或者物流公司,

通过Network可以看到是向一个网址发送了POST请求,参数有一个固定的参数(resultv2 )和快递单号(text ),返回的结果就包含快递公司的名称。

然后点击对应的快递公司,会显示查询结果。

这个过程是以快递公司类型(type)、快递单号(postid)和一个随机的数(temp)为参数发送的GET请求,返回的结果中就包含了快递的时间和位置信息。

02  代码实现

首先导入相应的模块:

import json

import requests

·JSON是一种轻量级的数据交换格式,里面可以包括方括号括起来的数组,也就是Python里面的列表。

·request模块的功能就是模拟浏览器对某一特定URL进行访问。

查询:

number = input('请输入您的快递单号')

url ='http://www.kuaidi100.com/query?type=ems&postid=%s'%number

# 使用requests发起请求,接受返回的结果de'du

rs = requests.get(url)

# 使用loads函数,将json字符串转换为pyhton的字典或列表

rs_dict = json.loads(rs.text)

# 判断是否成功获取到了json的数据,如果有数据则进行下一步的解析

msg = rs_dict['msg']

if msg =='ok':

print('您的快递%s物流信息如下:'% number)

data_list = rs_dict['data']

for kuaidi_dictin data_list:

time = kuaidi_dict['time']

context = kuaidi_dict['context']

print('%s'%time)

print('%s'%context)

else:

print(msg)

输出:

成功实现了快递信息的查询!

其实大家日常使用的快递查询方式就足够方便,本文更多是希望通过python快递查询这个小实例让大家更多的理解和使用request、json两个模块。

- DataCastle -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210113A05DB300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券