下面我来详细讲解如何使用Python自动追踪你的快递(物流推送邮箱)的完整攻略。
1. 前置条件
在开始使用Python追踪快递之前,需要准备以下两个条件:
- 一个支持邮件推送快递信息的邮箱(比如Gmail等)
- 你的快递运单号
2. 准备Python环境
在开始之前,需要准备好Python环境。可以通过安装Anaconda、Python编程环境等方式来获取。
3. 安装第三方库
在Python环境准备好之后,需要安装两个第三方库:requests
和beautifulsoup4
。可以通过以下命令来安装:
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技术站