使用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 相关文章推荐
浅析Python中的join()方法的使用
May 19 Python
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
Pycharm更换python解释器的方法
Oct 29 Python
python 常见字符串与函数的用法详解
Nov 23 Python
python使用threading.Condition交替打印两个字符
May 07 Python
python中的句柄操作的方法示例
Jun 20 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
Python过滤序列元素的方法
Jul 31 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 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 常用函数库和一些实用小技巧
2009/01/01 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
Joomla开启SEF的方法
2016/05/04 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
IE8 引入跨站数据获取功能说明
2008/07/22 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
2017/09/15 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
python实现的防DDoS脚本
2011/02/08 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
python多进程控制学习小结
2018/10/31 Python
Python 使用多属性来进行排序
2019/09/01 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
EntityManager都有哪些方法
2013/11/01 面试题
小学岗位竞聘方案
2014/01/22 职场文书
逃课上网检讨书
2014/02/20 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
初中生物教学随笔
2015/08/15 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python