Python—10行代码查快递
2020-03-03 本文已影响0人
Sunflow007
5.jpg
老鸟勿入,适合新人练手。
原谅我标题党的行为....不过整个程序代码确实是10行,(#注释的除外?)因为经常查快递,所以有了想法写了这段小代码~代码很简单,也没有加异常处理和其他功能。
整个程序只需用到了两个库:json和requests。调用的是快递100-查快递,寄快递,上快递100的api。
代码如下:
import json,requests
def searchPackage():
#输入运单号码,注意,只有正在途中的快递才可以查到!
packageNum = input('请输入运单号码:')
url1 = 'http://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=' + packageNum
#用url1查询运单号对应的快递公司,如中通,返回:zhongtong。
companyName = json.loads(requests.get(url1).text)['auto'][0]['comCode']
#在用url2查询和运单号、快递公司来查询快递详情,结果是一个json文件,用dict保存在resultdict中。
url2 = 'http://www.kuaidi100.com/query?type=' + companyName + '&postid=' + packageNum #还有个temp字段加不加都可以。如:'&temp=0.9829438147420106'
print('时间↓ 地点和跟踪进度↓\n')
for item in json.loads(requests.get(url2).text)['data']:
print(item['time'],item['context'])
searchPackage()
效果截图:
image有很多网站都可以用api来调取数据,譬如车票、机票、快递、豆瓣、网易...
用Python写一个爬虫很简单,可要想把爬虫代码写好却没那么简单,因为要学的还有很多~
譬如你爬取到的数据要用数据库存储吧(Mysql、MongoDB、redis、oracle...)
譬如你爬取海量数据时单机爬取太慢了,你要学多进程、多线程、协程、分布式。。。
譬如你爬取速度太快,总是被网站监测到,限制访问、封ip啊,于是你需要购买代理ip或者自己打造一个免费ip池。
譬如你觉得现有的爬虫框架如Scrapy太臃肿,需要自己部分改造一下,手写个爬虫框架。。。
然而,爬虫只是Python的一个方向而已,比较适合入门。还可以用Python来做web后端开发,譬如Flask、Django;还可以用Python进行数据分析、数据挖掘、机器学习.....
然而,Python也只是一个编程工具而已....