カットの下には、ロシアの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プログラムに基づいています(見ないように再度リンクします)。