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

yizhihongxing

下面我来详细讲解如何使用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日

相关文章

  • SpringBoot访问MongoDB数据库的两种方式

    以下是SpringBoot访问MongoDB数据库的两种方式的详细攻略: 1. 引入Spring Data MongoDB依赖 要使用Spring Boot访问MongoDB,首先需要在项目的pom.xml文件中添加spring-boot-starter-data-mongodb依赖: <dependency> <groupId>or…

    人工智能概论 2023年5月25日
    00
  • Vue项目History模式404问题解决方法

    下面是“Vue项目History模式404问题解决方法”的完整攻略: 问题背景 在Vue项目中,我们可以选择使用History模式路由,以去除URL中的#符号。但是,在使用History模式路由时,如果浏览器直接访问某个路由或者刷新当前页面,就会出现404错误。 问题原因 在使用History模式路由时,当用户在浏览器中输入某个路由地址,或者在浏览器中刷新页…

    人工智能概览 2023年5月25日
    00
  • pytorch损失反向传播后梯度为none的问题

    PyTorch损失反向传播后梯度为None的问题通常是由于以下几种情况引起的: 损失函数的反向传播方法中,编写错误或者计算错误,导致无法计算梯度。 模型中存在一些不带可训练参数的操作,如max,avg等,这些操作并不会产生梯度。 模型中存在一些缺失数据的操作,如padding等,缺失的数据并不会产生梯度。 解决这一问题的方法包括: 检查损失函数的反向传播方法…

    人工智能概论 2023年5月25日
    00
  • Python使用Pillow实现图像基本变化

    当涉及到图像编辑时,Pillow库是Python的一个强大选项。使用它,你可以轻松地完成诸如旋转、裁剪、缩放、转换和滤镜等各种操作。在本文中,我们将向您展示如何使用Pillow库执行基本的图像变换。 安装Pillow 在使用Pillow之前,您需要先安装它。Pillow可以通过pip进行安装。在您的终端上打开一个命令行窗口,并键入以下命令: pip inst…

    人工智能概论 2023年5月25日
    00
  • Tensorflow之梯度裁剪的实现示例

    下面是“Tensorflow之梯度裁剪的实现示例”的完整攻略。 什么是梯度裁剪? 梯度裁剪是一种常见的优化技巧,用于限制梯度的范围,避免梯度爆炸或消失。在深度学习中,梯度裁剪常用于RNN等网络中,比如LSTM、GRU等。 梯度裁剪的实现方法 Tensorflow提供了两种梯度裁剪的实现方式: 1. tf.clip_by_norm tf.clip_by_nor…

    人工智能概论 2023年5月25日
    00
  • 关于Java整合RabbitMQ实现生产消费的7种通讯方式

    关于Java整合RabbitMQ实现生产消费的7种通讯方式,以下是详细的攻略。 1. 概述 RabbitMQ是一个流行的开源消息中间件,被广泛用于构建可靠、可扩展和高性能的分布式系统,而Java作为一种流行的编程语言,也提供了丰富的集成库来实现与RabbitMQ的通讯。Java整合RabbitMQ实现生产消费主要有以下7种通讯方式: 原生AMQP协议 Spr…

    人工智能概览 2023年5月25日
    00
  • 效率软件

    什么是效率软件? 效率软件是指能够帮助人们提高生产力、工作效率的软件,主要包括工具类、办公类、知识管理类等类型。通过使用效率软件,人们可以更加高效地管理时间、任务和信息,达到事半功倍的效果。 如何选择有效的效率软件? 选择有效的效率软件需要按照自己的需求、工作习惯和个人喜好来选择,同时还需要考虑软件的适用性、易用性、稳定性和安全性等因素。以下是选择效率软件的…

    人工智能概览 2023年5月25日
    00
  • ASP 指南

    ASP指南完整攻略 ASP是一种经典的服务器端动态脚本语言,广泛应用于Web开发中。本指南将帮助你了解ASP的基本知识,并提供ASP的完整攻略,包括ASP的常见技术和实例演示。 ASP基础知识 什么是ASP ASP(Active Server Pages)是一种基于服务器端的动态网页技术,由Microsoft公司提供支持。它能够将动态脚本语言(如VBScri…

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