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

下面我来详细讲解如何使用Python自动追踪你的快递(物流推送邮箱)的完整攻略。

1. 前置条件

在开始使用Python追踪快递之前,需要准备以下两个条件:

  1. 一个支持邮件推送快递信息的邮箱(比如Gmail等)
  2. 你的快递运单号

2. 准备Python环境

在开始之前,需要准备好Python环境。可以通过安装Anaconda、Python编程环境等方式来获取。

3. 安装第三方库

在Python环境准备好之后,需要安装两个第三方库:requestsbeautifulsoup4。可以通过以下命令来安装:

pip install requests beautifulsoup4

4. 编写代码

接下来,我们需要编写Python代码来自动获取快递的最新状态并推送到邮箱中。

首先,我们需要导入必要的库:

import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
from email.header import Header

然后,我们需要定义一些参数:

# 参数
url = 'https://www.kuaidi100.com/query' # 快递100查询网站
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299'
} # 请求头
com = 'zto' # 快递公司代码
num = '1234567890' # 快递单号
sender = '你的邮箱' # 发送者邮箱
password = '邮箱密码' # 发送者邮箱密码
receiver = '接收者邮箱' # 接收者邮箱

接下来,我们需要定义一个函数来获取快递的最新状态:

def get_info(com, num):
    # 请求参数
    params = {
        'type': com,
        'postid': num,
        'temp': '0.9845821088733943',
        'phone': '',
    }
    # 发送请求
    r = requests.get(url, headers=headers, params=params)
    # 解析HTML
    soup = BeautifulSoup(r.text, 'html.parser')
    # 获取快递信息
    infos = soup.select('.timeline > .item')
    # 拼接快递状态
    status = ''
    for info in infos:
        time = info.select('.time')[0].text
        desc = info.select('.desc')[0].text
        status += time + ' ' + desc + '\n'
    return status

最后,我们需要编写主函数来调用上面的函数并推送快递信息到邮箱:

def main():
    # 获取快递信息
    info = get_info(com, num)
    # 发送邮件
    message = MIMEText(info, 'plain', 'utf-8')
    message['From'] = Header(sender, 'utf-8')
    message['To'] = Header(receiver, 'utf-8')
    subject = '快递最新状态'
    message['Subject'] = Header(subject, 'utf-8')
    smtp_server = 'smtp.gmail.com'
    try:
        server = smtplib.SMTP_SSL(smtp_server, 465)
        server.login(sender, password)
        server.sendmail(sender, [receiver], message.as_string())
        server.quit()
        print("邮件发送成功")
    except smtplib.SMTPException as e:
        print("Error: 无法发送邮件")
        print(e)

if __name__ == '__main__':
    main()

5. 示例说明

以下是两个示例的说明:

示例一

如果要追踪中通快递的单号为74308501308043的快递信息,并将最新状态推送到你的邮箱,则需要将参数修改为:

com = 'zhongtong' # 快递公司代码(中通快递)
num = '74308501308043' # 快递单号
sender = '你的邮箱' # 发送者邮箱
password = '邮箱密码' # 发送者邮箱密码
receiver = '接收者邮箱' # 接收者邮箱

运行代码即可。

示例二

如果要追踪圆通速递的单号为73279567556710的快递信息,并将最新状态推送到接收者邮箱,则需要将参数修改为:

com = 'yuantong' # 快递公司代码(圆通速递)
num = '73279567556710' # 快递单号
sender = '你的邮箱' # 发送者邮箱
password = '邮箱密码' # 发送者邮箱密码
receiver = '接收者邮箱' # 接收者邮箱

运行代码即可。

以上就是使用Python自动追踪快递(物流推送邮箱)的完整攻略。希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用python自动追踪你的快递(物流推送邮箱) - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 在django-xadmin中APScheduler的启动初始化实例

    在Django-xadmin中使用APScheduler可以很方便地实现后台任务,如定时任务、计划任务等。本篇攻略将详细讲解在django-xadmin中APScheduler的启动初始化实例的过程。 安装APScheduler 在使用APScheduler之前,需要先安装它。可以通过pip命令来进行安装: pip install apscheduler 配…

    人工智能概览 2023年5月25日
    00
  • Python基于百度云文字识别API

    Python基于百度云文字识别API是一种基于Python编程语言,并且使用了百度云提供的文字识别API接口来实现文字识别的技术方案。下面详细介绍Python基于百度云文字识别API的完整攻略。 准备工作 在使用Python基于百度云文字识别API之前,需要进行如下准备工作: 注册百度AI开发者账号,并创建应用,从而获得需要的API Key和Secret K…

    人工智能概论 2023年5月25日
    00
  • vue+socket.io+express+mongodb 实现简易多房间在线群聊示例

    下面我将详细讲解“vue+socket.io+express+mongodb 实现简易多房间在线群聊示例”的完整攻略,具体步骤如下: 1. 环境准备 在开始编程之前,需要先准备好必要的环境,包括: Node.js及npm包管理器 MongoDB数据库 Vue.js框架 在确认这些工具已经就绪后,接下来可以开始进行实现了。 2. 服务端实现 本示例中,我们选用…

    人工智能概论 2023年5月25日
    00
  • 在Python的Django框架中调用方法和处理无效变量

    在Python的Django框架中,我们经常需要调用方法和处理无效变量。以下是一些步骤和示例,以帮助你更好地完成这些任务。 调用方法 在Django框架中,调用方法是非常常见的。以下是一些步骤,以帮助你更好地理解如何调用方法。 步骤1:定义你的方法 首先,需要在Django中定义一个可调用的方法。例如,在models.py文件中,可以定义一个方法来更新一个人…

    人工智能概览 2023年5月25日
    00
  • 详解linux中 Nginx 常见502错误问题解决办法

    详解Linux中Nginx常见502错误问题解决办法 当使用Nginx作为Web服务器时,可能会遇到502错误。502错误通常表示代理服务器无法从上游服务器接收到有效的响应。本文将详细讲解Nginx常见的502错误问题,并提供解决办法。 常见问题及其解决办法 1. 上游服务器未启动 如果Nginx无法连接到上游服务器,则会生成502错误。检查上游服务器是否已…

    人工智能概览 2023年5月25日
    00
  • python中模块查找的原理与方法详解

    Python中模块查找的原理与方法详解 在Python中,模块是一个包含Python定义和声明的文件。在Python程序设计中,模块起着非常重要的作用,常用于组织代码、提高代码的复用性和可维护性。但是,当我们的程序中使用一个模块时,Python到底是如何去寻找并加载这个模块的呢?接下来,我们将详细讲解Python中模块查找的原理与方法。 模块的查找路径 在P…

    人工智能概览 2023年5月25日
    00
  • pytorch加载自己的数据集源码分享

    下面是关于pytorch加载自己的数据集的完整攻略。 1. 准备数据集 在使用pytorch训练模型需要一个自己的数据集,这里以图像分类任务为例,准备一个包含训练集和测试集的数据集,其中每个图像都分好了类别并放在对应的文件夹中,例如: dataset ├── train │ ├── cat │ │ ├── cat1.jpg │ │ ├── cat2.jpg …

    人工智能概论 2023年5月25日
    00
  • 将Python代码打包成.exe可执行文件的完整步骤

    将Python代码打包成可执行文件(exe)的过程又称为Python代码的编译。这个过程可以使Python代码独立于Python解释器,从而可以在没有Python环境的机器上运行。下面是将Python代码打包成可执行文件的完整步骤。 步骤1:安装pyinstaller pyinstaller是Python打包工具,可以将Python代码打包成单独的可执行文件…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部