|
計算してみると、国慶節のゴールデンウィークまであと2週間!旅行のチケットはもう手に入れましたか?
画像はpexelsから 国務院弁公庁が2019年の一部の祝日の取り決めに関して発行した通知によると、国慶節の祝日は10月1日から7日までとなる。 建国記念日の連休中に旅行を計画している方は、数日前にチケット購入で大騒ぎになったのではないでしょうか。ところで、Pythonでチケットを盗むツールを誤ってGitHubのトレンドリストのトップに上げてしまいました。 プロジェクト名は「12306」と分かりやすく、現在12,000個以上のスターを獲得しています。このプロジェクトは、Wen Xianpingというプログラマーによって開始されました。
これはおそらくGitHubで最も評価の高いチケット購入アシスタントです。機能は継続的に更新されており、現在はPython 3.6以降をサポートしています。 いくつかの新進気鋭の製品もこれに基づいて開発され、広く普及しました。 そのうちの一つが「py12306」で、5,000以上のスターを獲得し、分散チケット取得をサポートしています。国慶節後の春節の旅行ラッシュに備えて、チケットを確保する必要がある場合は、これらのPythonツールを試してみる価値があります。すでに多くの人がこれらのツールをうまく活用しています。 GitHub で高く評価されているチケット獲得プロジェクト 2 つ 12306 チケット購入アシスタント Wen Xianping/Wen Xiansheng (testerSunshine) のチケット取得アシスタント「12306」は 2018 年初頭に作成されましたが、最後のコード提出は今年 9 月 5 日であったため、まだ非常に新しいものです。 この有能な小さなヘルパーは、明確かつ簡潔な思考プロセスを持っています。 チケットの空き状況の確認から支払いの完了、そして注文番号の取得まで、すべてがシームレスに行われ、人間のタイピング速度がそれほど遅くないことを証明しています。 温氏は昨年、このアプリのおかげで無事に帰国の切符を手に入れました。その後、彼はこの切符ゲットアシスタントの進化に尽力しました。 現在までに、Wen 氏と他の貢献者は 361 件のコードエントリをプロジェクトに提出し、次の機能を実装しました。 アップデートログによると、最近追加された重要な機能はウェイティングリストシステムです。ウェイティングリストシステムでは、チケットが売り切れた場合にユーザーが前払いでチケットを購入し、他の乗客がチケットをキャンセルすると自動的に空席を埋めることができます。この新しい仕組みは、私の国で2019年の春節の旅行ラッシュの際に導入されました。 しかし、ウェン氏はチケット取得アシスタントにおけるこの機能の具体的なニーズがまだ不明なため、現在集中的な試行と調整を行っています。 新機能の実装に加え、既存機能の最適化も継続的に行われています。このチケット取得ツールはますます強力になっており、CAPTCHAの自動解決、自動ログイン、事前販売と直前のチケット取得、インテリジェントなウェイティングリスト、メール通知、Pushbear通知などの機能が追加されています。GitHubのスター数も、年初4,000から4倍に増加しました。 プロジェクトが拡大するにつれ、ウェン氏は 8 月 31 日に重要な発表を行いました。Python 2.7 のサポートを停止し、バージョン 3.6 以降のみをサポートするというものです。 このプロジェクトを詳しく見てみましょう。 ① 依存ライブラリ CAPTCHAは現在ローカルで認識可能です。モデルをダウンロードし、プロジェクトのルートディレクトリに配置する必要があります。すべてのコードはこのプロジェクト(https://github.com/zhaipro/easy12306)から提供されており、感謝の意を表します。
requirements.txt でプロジェクトの依存関係を表示します。
インストール方法 x:
② プロジェクトユーザーマニュアル サーバーの起動:
サーバーに Docker と Docker-Compose がインストールされている場合は、Docker-Compose を使用して起動できます。 docker.sh スクリプトはこの機能をカプセル化しており、次のコマンドを使用して起動できます。
③ ディレクトリ対応説明 目次に対応する説明は次のとおりです。
④ ログの例 成功ログをお送りください。チケット購入に失敗した場合は、失敗ログもお送りください。できる限りトラブルシューティングをお手伝いいたします。グループに参加して、さらに詳しく話し合うこともできます。このプログラムはチケット購入プロセスを迅速化するだけで、チケットが購入できることを保証するものではありません。
実践的なスキルをお持ちの方におすすめです。チケット取得の効率が2倍になります。そのため、複数のタスクを同時に実行できるツールなど、複数のツールを試してみることをお勧めします。 py12306 チケットアシスタント pjialin というプログラマーが Wen 氏からコードの一部を借りて、py12306 Ticket Assistant という分散ツールを開発しました。 つまり、1台のマシンが接続を確保できない場合でも、複数のハードウェアデバイスを同時に実行できます。また、マルチタスク(複数の列車)、複数日付、複数アカウントの同時クエリもサポートしています。さらに、複数の出発駅と到着駅の組み合わせを同時に監視できるという独創的な機能も備えています。 例えば、北京発の列車の切符が売り切れていた場合、次の駅まで行けば列車に乗れます。また、自宅近くで切符が買えない場合は、最終目的地までの切符を直接買うこともできます。タイピング速度に制限があるものの、妥協したいという方のために、このツールは切符の空き状況を自動で確認してくれます。 プロジェクト作者は、ウェン氏のアルゴリズムと bypass12306 を試したが成功しなかったため、独自のチケット取得ツールを作成したと述べています。 この新しいツールを使って、彼は一度に複数のチケットを手に入れることに成功しました。 このプロジェクトは Python 3.6 以上もサポートしており、現在 5,000 個のスターを獲得しています。 使い方を見てみましょう: PS: py12306 を実行するには Python 3.6 以上が必要です (他のバージョンはまだテストされていません)。 ① 依存関係をインストールする
②設定プログラム
自動 CAPTCHA 解決: CAPTCHA はローカルで認識できます。使用されるモデルとアルゴリズムは次のとおりです。
音声通知:音声認証コードは、Alibaba Cloud API Marketplaceのサービスプロバイダーから取得します。購入後、アプリコードを設定に入力する必要があります。
③ 発売前テスト 現在、ユーザー アカウントの検出、乗客情報の検出、駅の検出など、いくつかの簡単なテストが提供されています。 テストを開始 -t:
通知メッセージをテストする (音声、電子メール) -t -n:
④ プログラムを実行する
パラメータリストは次のとおりです。
分散クラスターは Redis に依存しており、現在のサポート状況は次のとおりです。
使用方法: 構成ファイルで CLUSTER_ENABLED をオンにして分散モードを有効にします。 現在、子ノード用の別個の設定ファイル env.slave.py.example が提供されています。このファイルを env.slave.py に変更するだけで、`python main.py -c env.slave.py` ですぐに起動できます。 Dockerの使用 ① 設定ファイルをローカルマシンにダウンロードする
② 設定を変更して実行
現在のディレクトリに12306.logという新しいログファイルが作成されます。コマンド「tail -f 12306.log」を使用してください。 Docker-Compose では以下のように使用されます。 ① 設定ファイルをコピーする
② Docker-Composeから実行 docker-compose.yml があるディレクトリで次のコマンドを使用します。
Web管理ページ 現在、ユーザー、タスク、リアルタイム ログの表示がサポートされており、将来的にはさらに多くの機能が追加される予定です。 Web機能を有効にするには、設定でWEB_ENABLEをオンにする必要があります。プログラムを起動後、現在のホストアドレス+ポート番号(デフォルトは8008)(例:http://127.0.0.1:8008)でアクセスすることでWeb機能にアクセスできます。 アンチブロッキングについて:現在、クエリとログイン操作は分離されており、クエリはユーザーのログイン状態に依存しません。AクラウドまたはTクラウドに配置すると、IPアドレスによるアクセス制限を受けやすくなります。他のネットワーク環境で実行することをお勧めします。
最後に、友人全員が建国記念日の休日に無事に帰宅できることを祈っています。
12306 プロジェクトポータル:
py12306 プロジェクトポータル:
|