PythonのSOAP API Russian Postのクライアント

現在のプロジェクトに取り組む過程で、ロシア郵便の追跡サイトが突然解析を停止したときに状況が発生しました。 インターネットでは、「ひどい」新しい保護などについて少し酒を飲んでさえいました。 同じインターネット上で、ロシア郵便が同じAPIを持っているという情報が表面化した。 完全に人間ではありません(つまり、SOAPプロトコルを介して)が、一部は存在し、誰かがそれを使用することさえあります。 私は上司に連絡し、上司はロシアの郵便局に手紙を書いて(驚くべきことに電子的)、それが判明した-はい。 これはすべて実際に機能し、機能しているようです。 どうやら彼らは当時のサービスを作成しました。



カットの下には、ロシアのPost APIへのクライアントの作業クラス( python内 )へのリンクと、それを使用した作業の詳細があります。



誰のために


そのため、多くの貨物を追跡し、もちろんロシアの郵便のウェブサイト(以下「メール」)の追跡ページを解析する現在の問題に対処しましたが、これが最後のクロールではなく、次回のクロールが悪化する可能性があると仮定するのは論理的です。 どうする? あなたのサービス/会社の未来を確保する方法は?



あなたはそれを推測しましたが、大声で言います-APIに接続する必要があります!



ここから楽しみが始まります。 このサービスは誰もが利用できるわけではありませんが、あなた(会社)がメールに同意している場合、切望されたアクセスを得る可能性は非常に高くなります。 幸せな接続者に送信されるサービス規則では、これらの同じ接続者は「連邦クライアント」と呼ばれます。 私はここで知りません-これが特別なステータスであるかどうか、またはメールに同意したすべての人は名前と呼ばれます...



アクセス方法


一般に、石鹸を(できればより電子的に) 入手し、自由形式でfc@russianpost.ruに書き込み、自分が何であるか、「SOAPプロトコルを使用したRPOステータスの監視へのアクセス」、およびそれが必要な理由を書きます。 このために、彼らはあなたに記入する必要があるアンケートがあるという規則をあなたに送ります、 ジャックが建てた家で、頭でそれ署名し、あなたのオフィスのシールでそれをスタンプして、スキャンの形でそれを送り返します。



その後、彼らはあなたに...ユーザー名とパスワードを与えます(あなたは何も耕されていないと不平を言うまで有効になりません、まあ、または私たちはとても不運でした...)。



働き方


それでは、攻撃に取り掛かる時です。 フォーク/クローン:

git://github.com/qnub/ru-post-soap-client.git







構成する(または構成しない、 readmeを参照 )。 そしてそれは始まった

 from time import sleep from client import RuPostClient client = RuPostClient() tickets = client.make_ticket(all_my_track_numbers) sleep(900) track_statuses = client.get_tracks(tickets.keys())
      
      







まあ、またはそのようなもの-さらに同じreadmeに沿って。



ニュアンス


規制によれば、同じチケットに対するデータ要求は、作成後15分以内に15分ごとに1回までしか行えません。



チケットでは、一度に3,000(3,000)トラックを超えるデータを要求することはできません(1つのチケットで)。 こちらをご覧ください。 たとえば、100トラックで十分です。 各トラックには最終的に大量のデータが来ますが、状況によっては、誰かがシステムをロードすることができます...



認証データを正しく入力し、エラー16「データ交換サービスの内部エラー」が表示された場合は、追跡番号が正しく入力されているかどうかを確認してください(特殊文字などから削除)。 それでも解決しない場合は、すべて同じ住所に手紙を書き、何が問題なのかを確認するように求めます。 最後に、彼らは単にエラーが修正されたと私たちに言った、それだけです。 何だった-私は知らないが、それは助けた...



ありがとう


このコードをあなたと共有できるようにしてくれたシェフに感謝します。 技術自体は彼の費用で解決されましたが、私はすでに自分のクラスにそれを割り当てました。



楽しい使用( どうやら、さらに2、3人が興味を持っています)。 フォーク、プルリクエスト、バグレポート-すべて、従来のgithubプログラムに基づいています(見ないように再度リンクします)。



All Articles