Россия почта трекинг: отслеживание посылки по трек-номеру. Отследить письмо

Содержание

Автоматизируем проверку трекинга почты России / Хабр

av0000

Python *

Надоело нудно выбирать из списка нужный трек?
Не работают сторонние треккеры?
Тогда мы идём к вам! ©

После того, как мне в очередной раз стало лень проверять с десяток треков, выбирая их из списка на сайте Почты России, я занялся поиском хоть какого решения для автоматизации сего процесса.

Результат изысков

Гугление на предмет готовых скриптов показало, что после смены «политики партии», большинство из них работать отказывается. Каково же было моё радостное удивление, когда ссылка к старому доброму info.russianpost.ru/servlet сработала! В итоге получился наколенный скрипт на питоне, проверяющий треки из файла и формирующий страничку с результатами — ссылкой на on-line проверку и последним действием с посылкой для наглядности.

Всё предельно просто:
* Читаем трек-номера из файла
* Для каждого номера парсим HTML и выбираем предпоследнюю строку таблицы (если она есть) статуса
* Формируем и записываем результирующий HTML

У меня это всё запускается cron-ом раз в несколько часов и подсовывается локальному Lighttpd в качестве одной из статических страниц.

Собственно код:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import urllib2
import lxml.html as htm
import lxml.html.soupparser as soup # Note: internally imports BeautifulSoup
import time
log = logging.getLogger()
POST_URL="http://info.russianpost.ru/servlet/post_item?action=search&searchType=barCode&show_form=no&barCode=%s&page=1" # Track No as parameter
TRACK_FILE="tracks.txt"
HTML_FILE="index.html"
def main():
    out = [] # output links
    tracks = [x.strip() for x in open(TRACK_FILE,'Ur').readlines() if x.strip()]
    for trk in tracks:
        log.debug(u"Check tracking #%s" % (trk,))
        try:
            f = urllib2.
urlopen(POST_URL % trk) except: log.exception(u"Get info for `%s` failed (open url)" % trk) try: s = f.read() f.close() except: log.exception(u"Get info for `%s` failed (read)" % trk) try: try: x = htm.document_fromstring(s) except: # broken html fallback x = soup.fromstring(s) tbl = x.xpath('/html/body/table[1]') log.debug(u"TBL: %s" % (tbl,)) if tbl: s = '' tr = tbl[0].xpath('tr')[-2].xpath('td') out.append((trk, u"%s: %s (%s %s)" % (tr[1].text, tr[0].text, tr[3].text, tr[4].text))) else: out.append((trk, 'No information available')) except: log.exception(u"") # make output ht = [u"<html>", u"<head><meta http-equiv='content-type' content='text/html;charset=utf-8'/></head>", u"<body>" u"<h3>Tracking info</h3>", u"<h5>Last update: %s" % time.
asctime(), u"<h5>Add track numbers into `tracks.txt`</h5><br/>"] for s in out: ht.append( u"<a href='%s'>%s</a>: %s<br/>" % (POST_URL % s[0], s[0],s[1]) ) ht.append(u"</body></html>") with open(HTML_FILE, "w") as f: print >>f , "\n".join(ht).encode('utf-8') log.debug('Done.') if __name__ == "__main__": logging.basicConfig(level=logging.INFO) main()

PS: В качестве самостоятельной работы можно добавить чтение и запись не из hard-coded файлов, а передачу их параметрами. Ну и украшательства выходного HTML, если это кому-то надо 🙂

UPD: Добавил вывод названия ОПС и атрибута операции — для наглядности

Теги:

  • python
  • почта россии
  • html-парсер

Хабы:

  • Python

Всего голосов 18: ↑11 и ↓7 +4

Просмотры

13K

Комментарии 22

Александр Воронин @av0000

Пользователь

Комментарии Комментарии 22

Почта России Жалобы

Бангладеш
Мохаммад Нусер 3 декабря 2021 г.
Где моя посылка

Где моя посылка моя посылка пропала

РЕКЛАМА
Мохаммад Нусер 2 декабря 2021 г.
Где моя посылка

ER137202423IN это номер отслеживания
Я отправил посылку в Россию которая выехала из Индии 11.03.2021 но ее отслеживание в России еще не обновилось
Где посылка только сейчас хочу узнать

Я отправить посылку по этому адресу

Отправить на
Гузь Екатерина Ивановна
УЛИЦА БАШИЛОВСКАЯ, 1 К1
ПОЧТА ПОСТАВКИ
МОСКВА
Москва
127220
Россия

Шилпа Диге 1 апр. 2019 г.
ОТПРАВЛЕНО СКОРОСТНОЙ ПОЧТОЙ в Российскую Федерацию 18 февраля.

Я, миссис Шилпа Диге, прислала кое-что из Индии, Пуна, Махараштра, для моей дочери, состоящее из продуктового тканевого передвижного сосуда для шнура и лекарств, которые были так важны для ее гинекологических проблем.

Почта России приняла от нее письменное заявление о том, что она отказалась принять указанную посылку.

Я беспокоюсь за свою дочь, так как она столкнулась с той же проблемой, о которой я уже упоминала. Посылка до сих пор находится на российской таможне. Что мне теперь делать?

НОМЕР ПОСЫЛКИ EMS. ЭМ306662938В.

Джоннн 15 декабря 2017 г.
не удалось отследить детали моего сообщения

привет, сэр,

мое письмо было отправлено из россии москвы в Индию но до сих пор я не получил и даже не могу отследить их за месяц, но до сих пор не могу найти детали пожалуйста помогите мне найти детали. ИДЕНТИФИКАТОР ОТСЛЕЖИВАНИЯ CA119280140RU

мой почтовый идентификатор [email protected]

РЕКЛАМА
Кунал000111 6 ноября 2017 г.
Бросил посылку

Брат прислал мне обувь. … уже второй раз бросили посылку.!!. Пожалуйста, дайте мне мои туфли .!.! Я заплатил хорошую сумму

Бахархан2996 28 февраля 2017 г.
Посылка еще не отправлена ​​

Уважаемый господин, мое письмо пришло в Индию 18 февраля из России, но
еще не пришло в Бангладеш. не могли бы вы сказать мне, когда письмо
отправится из Индии в Бангладеш. мой номер отслеживания RB483194775RU

Бахархан2996 28 февраля 2017 г.
посылка еще не отправлена ​​

Уважаемый сэр, мое письмо пришло в Индию 18 февраля из России, но
еще не пришло в Бангладеш. не могли бы вы сказать мне, когда письмо отправится

из Индии в Бангладеш. мой номер отслеживания RB483194775RU

Предыдущий 1 Следующий

РЕКЛАМНОЕ ОБЪЯВЛЕНИЕ

Заказал часы в Мераном 70 дней назад и они до сих пор в России.

| Страница 5

JavaScript отключен. Для лучшего опыта, пожалуйста, включите JavaScript в вашем браузере, прежде чем продолжить.

81 — 100 из 264 сообщений

рмерон
·
Зарегистрировано

кафесуада
·
Зарегистрировано

забат
·
Зарегистрировано

Коцов
·
Зарегистрировано

насос 19
·
Зарегистрировано

охенри1
·
Запрещено

агфа100
·
Зарегистрировано

Стяжка
·
Зарегистрировано

забат
·
Зарегистрировано

Зани4
·
Зарегистрировано

каменный
·
Зарегистрировано

lqqker
·
Зарегистрировано

каменный
·
Зарегистрировано

lqqker
·
Зарегистрировано

Объект704
·
Зарегистрировано

Джокит
·
Зарегистрировано

Слизакс
·
Зарегистрировано

Исследователь ролей
·
Премиум-участник

мераном
·
Зарегистрировано

мераном
·
Зарегистрировано

81 — 100 из 264 Сообщений

Это старая тема, возможно, вы не получите ответа, и старая тема может быть восстановлена.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *