Python数据从入门到实践

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也只是一个编程工具而已....

上一篇下一篇

猜你喜欢

热点阅读