前语
-
爬取物流动态信息
-
将信息推送至邮箱
物流追寻
直接上代码:
import requests
import bs4
import re
kuaidi = []
url='http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8type=ztonumber=你的单号'
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.(i.get_text())
print(i.get_text())
这一段代码在各种爬虫事例中咱们运用过很屡次,就不过多解读了,用 requests + bs4 爬成果和提取咱们需求的方针信息,当然注意到这仅仅中通快递的查询链接:
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%A8type=' + code + 'number=' + id
return url
这样咱们就完成了第一步!终究咱们将一切的物流信息保存在一个list里:
物流信息推送至邮箱
在上一步咱们得到了快递的最新物流信息,那么假如咱们想将最新的物流信息发送到邮箱该怎样操作呢?这也不困难,只需求运用
yagmail
模块就能够,装置也很简单:
pip install yagmail
def send(kuaidi):
yag = yagmail.SMTP( user="登陆邮箱", password="暗码", host=)
# 邮箱正文
contents = kuaidi
# 发送邮件
yag.send('方针邮箱', '最新快递追寻', contents)
print('邮件发送成功')
SMTP服务器
的暗码,能够依照下面提示获取
这样只需咱们写个命令行脚本,守时查询你的快递物流信息,并发送至邮箱。能够是让脚本每小时查询一次快递:
# 主程序
time.sleep(3600)
也能够用更高频率去查询物流信息,并在产生物流变化或快递抵达指定地址发送邮箱:
#假如快递抵达杭州则发送信息至邮箱
if '杭州' in kuaidi[0]:
send()
也可自定义为其他你关怀的快递动态。
当然,在抓取信息时请注意:只能用于自己查查快递,而且恳求频率不要太高,避免影响人家的正常服务。
往期文章引荐
_
