使用python自动追踪你的快递(物流推送邮箱)


Posted in Python onMarch 17, 2020

前言

最近国内疫情状况好转,快递业也逐渐恢复,大家的快递是不是跑起来了?本文就来讲解如何让 python自动为你查询快递信息 ,并在物流发生更新或者到达指定地点时第一时间将 物流推送至你的邮箱

使用python自动追踪你的快递(物流推送邮箱)

其实并不复杂,只需要两步即可搞定:

  • 爬取物流动态信息
  • 将信息推送至邮箱

物流追踪

先说一下走过的坑,在一开始的思路就是去找个快递查询的网站查一下快递,然后抓一下包就能拿到我们需要的内容,然后写个爬虫去追踪快递信息,结果一百度发现基本国内查快递的网站用的都是快递100的API,申请个API还要提供一个网站供对方审核,并且还有次数限制。不申请API直接爬得到的物流信息被各种加密。翻遍GitHub也没有找到一个可以用的。折腾半天终于找到一个网站可以使用。直接上代码

import requests
import bs4
import re
kuaidi = []
url='http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=zto&number=你的单号'
response = requests.get(url)
response.encoding = 'gb18030' 
response = response.text
soup = bs4.BeautifulSoup(response,'html.parser',from_encoding="utf8")
for i in soup.findAll(name='div',attrs = {'class':'icontent'}):
 kuaidi.append(i.get_text())
 print(i.get_text())

这一段代码我们使用多很多次就不过多解读了,用requests+bs4爬结果和提取我们需要的目标信息,当然注意到这只是中通快递的查询链接

使用python自动追踪你的快递(物流推送邮箱)

因此我们需要再写一个函数来生成更多快递公司的查询链接,这也不是很困难

def express_type_get():
 express_type = ('sfexpress','yunda','sto','yto','zto','ems','ttdex','htky','qfkd','chinapost')
 print('////////////////快递公司////////////////\n1.顺丰 2.韵达 3.申通 4.圆通 5.中通\n6.EMS 7.天天 8.汇通 9.全峰 10.邮政\n////////////////////////////////////////')
 while True:
 express = int(input('请选择快递公司(数字):'))
 if express:
  if express <= 10 and express >= 1:
  break
  else:
  print("错误的选择!")
 else:
  print("不能为空!")
 return express_type[express-1]

def get_url(code,id):
 url = 'http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=' + code + '&number=' + id
 
 return url

这样我们就完成了第一步!最终我们将所有的物流信息保存在一个list里

使用python自动追踪你的快递(物流推送邮箱)

物流信息推送至邮箱

在上一步我们得到了快递的最新物流信息,那么如果我们想将最新的物流信息发送到邮箱该怎样操作呢?这也不困难,只需要使用 yagmail 模块就可以,安装也很简单 pip install  yagmail

直接看代码,以qq邮箱为例

def send(kuaidi):
 yag = yagmail.SMTP( user="登陆邮箱", password="密码", host='smtp.qq.com')
 # 邮箱正文
 contents = kuaidi
 # 发送邮件
 yag.send('目标邮箱', '最新快递追踪', contents)
 print('邮件发送成功')

第一行登陆邮箱,第二行填写发送内容,第三行发送邮件,小白也能看懂,但是需要注意的是这里的邮箱密码并不是你的QQ邮箱登陆密码而是 SMTP服务器 的密码,可以按照下面提示获取

使用python自动追踪你的快递(物流推送邮箱)

这样只要我们写个命令行脚本定时查询你的快递物流信息发送至邮箱或者是让脚本每小时查询一次快递

#主程序
time.sleep(3600)

还是更以高频率去查询物流信息并在发生物流变动还是快递到达指定地点发送邮箱

#如果快递到达杭州则发送信息至邮箱
if '杭州' in kuaidi[0]:
 send()

或者是其他你关心的快递动态都可以自定义。当然要记住 只能用于自己查查快递并且注意请求频率不要对人家的服务造成影响 。

总结

到此这篇关于使用python自动追踪你的快递的文章就介绍到这了,更多相关python自动追踪快递内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Django的信号机制详解
May 05 Python
python实现多张图片拼接成大图
Jan 15 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
python之生成多层json结构的实现
Feb 27 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
Python APScheduler执行使用方法详解
Dec 10 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
Python脚本调试工具安装过程
Jan 11 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
windows、linux下打包Python3程序详细方法
Mar 17 #Python
Python任务自动化工具tox使用教程
Mar 17 #Python
vue常用指令代码实例总结
Mar 16 #Python
django-利用session机制实现唯一登录的例子
Mar 16 #Python
python安装dlib库报错问题及解决方法
Mar 16 #Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 #Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 #Python
You might like
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
node.js使用redis储存session的方法
2018/09/26 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
小程序如何获取多个formId实现详解
2019/09/20 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
基础的十进制按位运算总结与在Python中的计算示例
2016/06/28 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
html5 canvas 使用示例
2010/10/22 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
留学推荐信怎么写
2014/01/25 职场文书
中青班党性分析材料
2014/02/16 职场文书
营销与策划专业求职信
2014/06/20 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
办公室管理规章制度
2015/08/04 职场文书
房产销售员2015年终工作总结
2015/10/22 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB