欢迎来到

视学算法

python 查快递API python编程查快递_爬虫框架

Life is short

You need Python


python 查快递API python编程查快递_Python_02

    上边那句话是Python社区的名言,翻译过来就是“人生苦短,我用Python”。我没有遇到过一门编程语言可以如此干净、简介,如果你有处女座情节,你一定会爱上Python这门语言。下面就是用10行代码完成了快递查询的功能。

    库:request 和 json,调用快递100-查快递,寄快递,上快递100的API。

python 查快递API python编程查快递_Python_03

效果展示

python 查快递API python编程查快递_json_04

实现代码

"""
author : 阿广
data : 2018/10/21
"""

import json,requests
def searchPackage():
    #输入运单号码,注意,只有正在途中的快递才可以查到!
    packageNum = input('请输入运单号码:')
    url1 = 'http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=' + packageNum
    #用url1查询运单号对应的快递公司,如中通,返回:zhongtong。
    #print(url1)
    companyName = json.loads(requests.get(url1).text)['auto'][0]['comCode']
    #print(requests.get(url1).text)
    #print(companyName)
    #在用url2查询和运单号、快递公司来查询快递详情,结果是一个json文件,用dict保存在resultdict中。
    url2 = 'http://www.kuaidi100.com/query?type=' + companyName + '&postid=' + packageNum
    print('时间↓                             地点和跟踪进度↓\n')
    for item in json.loads(requests.get(url2).text)['data']:
        print(item['time'],item['context'])

searchPackage() # 调用查询函数

阿广论道

    有人问,本来在淘宝上就能查询到自己快递信息,你爬快递有什么用呢?我想说的是:没用!只是作为锻炼自己的一种方式,不积跬步无以至千里,从每一件小的事情做起,才能在遇到大的困难项目的时候得心应手。   

    我们现在用Python爬了一下快递很简单,简单到几行代码就解决了,但是爬虫代码想写好却不容易。譬如你爬取速度太快,总是被网站监测到,限制访问、封ip,于是你需要购买代理ip或者自己打造一个免费ip池。譬如你觉得现有的爬虫框架如Scrapy太臃肿,需要自己部分改造一下,手写个爬虫框架......譬如你爬取到的数据要用数据库存储(MongoDB、Mysql、redis、oracle...)譬如你爬取海量数据时单机爬取太慢了,你要学多进程、多线程、协程、分布式等。