時間通りにレールによるものですか?

個人的には、私は列車のファンです。彼らはゆっくりと、国を乗り越える方法です。カナダは鉄道輸送のための最高の候補者ではなく、沿岸の間のかなり大きな地域を提供していますが、鉄道はウィンザーとケベックシティとの間の廊下で日常的な列車サービスを運営しています。

残念ながら、トラベラーレールはカナダの工業鉄道に遅れを引き起こしていなければなりません。いくつかの列車が非常に定期的な遅れを持っていることを通知した後、それは電車によってそれぞれの典型的な性能を理解することが有益であるように思われました。これにより、このデータを公に供給しない。

ただし、出発時期だけでなく到着に関するデータを一部提供しています。レールサイトで任意の種類のブラウザで提供されるデータを掘り下げると、過去のスケジュール/実際の到着データを問い合わせることができました。結果はTrainStats.ca、ビアの画面でタイムリーな方法でパフォーマンスが得られます。私があなたの次の列車のチケットを得るときに、私はこれがすべてうまくいくのか、そしてまさにこのすべての作品を正確に行く方法だけでなく、休憩の後に私に参加してください。

データを取得する

Viaは、その条件ページに翌日だけでなく、以前の、現在、および翌日のルーチンデータを供給しています。これにより、一連の旅行データを開発しましょう。幸いなことに、私たちはChromeのインスペクタを終了したり、この取得要求を発見したりできます。

http://reservia.viarail.ca/tsi/gettrainStatus.aspx?l=en&tsiccode=87&departuredate=2015-12-01&trainInStandate=2015-12-01&t=144903500354.

ここでいくつかのジューシーなパラメータがあります。 TSitrainNumberは間違いなく私たちが見ている電車番号です。出発は、電車が去った日、到着日が到着した日です。トレーニング標高も同様に電車が残っている日付に設定されているようです。これを念頭に置いて、Pythonにジャンプする時間だけでなく、素晴らしいリクエストライブラリを利用して要求を作成する時が来ました。

このデータは、以下に表示されるものとは異なる方法で解釈またはコンパイルされ得る双方向のUnicodeテキストで構成されています。隠しUnicode文字を公開するエディタでデータを開くには、エディタでデータを開きます。
双方向のUnicodeキャラクターについてもっとたくさん発見してください

隠されたキャラクターを表示

Payload = {‘L’: ‘en’、

‘tsiccode’: ‘via’、

‘tsitrainnumber’:train_number、

「出発飼育」:Trip_Date、

‘到着日’:trip_date、

‘traininstancedate’:trip_date}

r = requests.get( ‘http://reservia.viarail.ca/tsi/gettrainStatus.aspx& #39;

params =ペイロード)

生の眺め

request.py

Githubによって開催されました

このコードを使用すると、任意の種類の日付に任意の種類の列車番号のデータを取得できます。いくつかのテストの後、私たちは、経由のデータが2015年4月に戻ってきたことを発見しました。これは、6か月以上のデータを提供します。すべての旅行のために、私たちは手配と実際の到着と各駅の出発時間を取得します。その情報を維持すると、列車がどのように遅れたかを正確に判断できます。

ページデータがHTMLとして取得された状態で、BeautifulSoupを使用してスクリプトがまとめられてすべての値を抽出しました。その後、このスクリプトはTripデータのオブジェクトを作成し、SQLAlchemyを使用してPostgreSQLデータベースに格納されます。これにより、後でデータにアクセスするのに効果的なものと同様に簡単になります。

最後のステップは、すべての電車番号とデータを引っ張る日数を繰り返すことでした。このスクリプトは、一部のネストされたループを利用してデータの保留と保存します。もう1つのスクリプトは、前日のデータをデータベースに保存します。これはcronジョブに設定されているので、データベースは新鮮に留まります。

(安い)ウェブサイトを構築する

trainstats.caのウェブサイト
この時点で、12,000以上の旅行に到着データがあります。プロットを作成するためのクエリを手動で実行することはできますが、プロットを作成するためのスクリプトを作成することはできます。それはそれがウェブサイトを開発する時が来たことを示しています。物事をウェブに素晴らしくすることは私の強いものではありません、それで[Phil Everson]はいくつかのWeb開発をするために飛び込んだ。

制約を追加するには、できるだけ手頃な価格のサイトを実行することを望みました。 Herokuのようなサービスオファリングとしてのプラットフォームは、月に20ドルを走行しました。ジジュアロースからのオンライン個人サーバーは少なくとも5ドルを犠牲にします。最も安価な選択は静的サイトを作ることでした。

静的Webページは、地理科学の日に戻る旅行です。ファイルを保持することができますが、サーバー上ではあらゆる種類の処理を行うことはできません。幸いなことに、これは私たちが提供していたデータの種類にうまく機能しました。集約されたトリップデータはすべてJSONファイルにエクスポートされる可能性があります。クライアント側のJavaScriptは、データとスクリーンプロットをトンすることができます。

TrainStatsサイトは、いくつかのHTML、CSS、およびブラウザ内で実行されるJavaScriptと、データを含むJSONデータのコレクションで構成されています。データセットは毎日生成されますもう1つのCronジョブによって、それはすべての処理が地域のコンピュータ上で1つのうちに行われることを可能にする。 その後、Amazon Web Servicesコマンドラインインターフェイスを利用して、データをS3にプッシュし、そこでユーザーが検索できます。 データセットは小さいのでS3だけでなく、コストは通常のホスティングよりも低くなります。

結果

このハックは主に楽しみのために開発されました、しかしそれはいくつかの魅力的な知見を持っています。 私の通常のオタワにトロントルートから、私は、84%の時間の84%の列車を選択するのは、38%の旅行の28%を遅らせるためだけに局所的な方法を選ぶ可能性が高くなります。 他の何人かの旅行者は統計を発見するかもしれません。 どちらの方法でも、安価にWebサービスを提供するだけでなく、データセットを削除するのに魅力的な行使でした。

あなたが源泉について考えているならば、それは撮影のためにgithubに全部です。 私たちはあなたがそれを使ってRailによってddosしないことを親切に要求します。

Leave a Reply

Your email address will not be published.

Related Post

Hackadayで枠材Hackadayで枠材

からゴージャスなものを把握するようにして、私たちは通常点滅しているものをカバーしています。ただし、サイトの名前はハッカデイです。私たちは巧妙で、新しい方法で物事を再利用していることだけでなく、魅力的なプロジェクトを大幅に祝います。フロントページを優雅にする伝統的な仕事ではありませんが、フレーミング製材から作られたこのナイトスタンドが明確に属することをお勧めします。 フレーミング製材は、ひどく、奇妙な、そして重い結び目であることに対して悪名高いものです。ほとんどの深刻な家具メーカーは、手頃な価格のものを利用することを妨げます。ここで米国では、巨大なボックスのハードウェア店は手頃な価格の急成長した柔らかいパインを持っています。それが切断されたときでさえも、直角のコーナーを直接入手するプロセスも含まれていますが、木の内側の内部のストレスが解放され、ボードをねじれ、もう一度反っ​​たままにします。撮影、接合、およびビデオの切り込みのタイムラプスプロセスは、それにほぼ治療的要素を有する。結果はほとんどの部屋で家を見ているのは2つの素晴らしい家具の2つの素晴らしい部分です。 発展の中で明らかな職人技は注目に値するが、より印象的であることは、不適切な材料だけでなく、それらから素敵なものを作るプロセスである。おそらくあなたが今週末にあなた自身のナイトスタンドを作ることを選ぶだけでなく、それにいくつかのタッチセンシティブエレクトロニクスを追加することができます。休憩後のビデオ。

デバイスがシームレスな更新をサポートし、プロジェクトトレブルデバイスがシームレスな更新をサポートし、プロジェクトトレブル

をサポートしているかどうかを確認してください。すべてのAndroidユーザーは、デバイスのシステムファームウェアをアップグレードする手間について知っています。 Android Nougat 7.0のデビュー前に、すべてのシステムファームウェアファイルがデバイスのストレージにダウンロードされていました。更新がダウンロードされると、ユーザーはデバイスを再起動し、更新が適用されてインストールされるまで15〜20分間待たなければなりませんでした。ただし、インストール後、ユーザーは、デバイスが「Androidがアップグレードされている」ダイアログを表示するため、更新を確定するまでさらに5〜10分待たなければなりませんでした。これはユーザーにとって貴重な時間の無駄でした。このため、多くのユーザーは、デバイスの更新を延期し続けました。 この問題に対処するために、GoogleはAndroid 7.0 NougatでSeamless Updatesという機能を導入しました。この機能には、新しいA/Bパーティションシステムが採用されました。このタイプのパーティションシステムをサポートする携帯電話には、A_SLOTとB_SLOTなどの2セットのパーティションがあります。ダウンロードされた更新はすべて非アクティブスロットに送られるため、名前のシームレスな更新が行われます。ユーザーが再起動時に更新をインストールすることを決定したときに、電話は最終的に非アクティブスロットに切り替え、それにより、更新をインストールして構成する時間を大幅に短縮します。そういえば、「Androidがアップグレードしています」ダイアログにはここには場所がなく、デバイスはいつものようにブーツがあります。ただし、ユーザーデータはパーティション間で相互に共有されます。第1世代および第2世代のGoogle Pixels、Xiaomi Mi A1、Moto Z2 Force、Essential Phoneなどのデバイスには、このタイプのパーティションシステムが装備されています。 読み取り:Snapdragon Galaxy S8およびS8 Plus(SM-G950U/G955U)にAndroid Oreoファームウェアをインストールします A/Bパーティションシステムの利点と短所 さて、このタイプのパーティションの利点と短所に到達しましょう。 2つの利点があります。まず、更新が適切にインストールされなかった場合、デバイスは別のスロットに切り替えます。たとえば、更新がB_SLOTのバックグラウンドにインストールされている場合、デバイスはA_SLOTにシームレスに切り替えるだけです。 2番目の利点は、前述したように、ユーザーが「Androidがアップグレードしている」ダイアログを待つ必要がなく、デバイスはいつものように起動することです。 欠点に関する限り、このタイプのパーティションは、2セットのパーティションのためにデバイス上のストレージスペースを食べて、またデバイスがどのように装備していても、このシステムは依然として問題です。存在します。 デバイスがシームレスな更新をサポートしているかどうかを確認してください 以下に示すように、ADBシェルでコマンドを実行することにより、デバイスがシームレスな更新をサポートするかどうかを確認できます。ただし、最初に、ADBのセットアップ方法に関するチュートリアルをご覧ください。 GetProp ro.boot.slot_suffix デバイスがA/Bパーティションシステムをサポートしていない場合、出力は表示されません。ただし、(_aまたは_b)などの文字列が表示されている場合は、安心してください。デバイスはシームレスな更新をサポートしています。また、以下に示すようにコマンドを入力して、デバイスがパーティションシステムをサポートしているかどうかを確認できます。以下に示すコマンドは、デバイスがA/Bパーティションシステムをサポートしている場合、真に出力する必要があります。 GetProp

DVDFAB DVDリッパーDVDFAB DVDリッパー

DVDFAB DVDリッパーでDVDを簡単かつ迅速にリップして、DVDを簡単かつ迅速に人気のあるビデオまたはオーディオ形式に迅速にリッピングするのに最適なソフトウェアです。ここに詳細があります。 あなたはあなたのDVDコレクションを心配していますか? DVDをリッピングして、コンピューターまたはモバイルデバイスに保存しますか?リッピングツールを使用すると、ディスクの内容をコピーして、ハードドライブに保存できます。これは、ディスク上のデータのバックアップを作成したり、ディスクドライブがないデバイスでコンテンツを再生したりする場合に役立ちます。多数のDVDリッピングツールが利用可能ですが、DVDFAB DVDリッパーは最高の1つです。 DVDFAB DVDリッパーと、DVDをリッピングするために使用する方法について詳しく知ります。 DVDFAB DVD Ripperは何ができますか? DVDFAB DVD Ripperは、DVDをさまざまなオーディオおよびビデオ形式にリッピングできる強力で使いやすいツールです。使いやすく、優れた結果を提供します。メインフィルムまたはDVD全体のみをリッピングすることを選択できます。ソフトウェアは、選択したデバイスの再生のためにデータを直ちに変換します。リッピングする前にビデオを編集することもできます。そのため、各ディスクから必要なものを正確に取得できます。 DVDFAB DVDリッパー機能: DVDFAB DVD Ripperは最高のDVDリッパーソフトウェアであり、DVDを迅速かつ簡単にリッピングしたい人に最適です。 MKV、MP4、AVI、WMV、FLV、MOV、WTV、またはその他の形式であろうと、DVDFAB DVDはDVDを1000+ビデオおよびオーディオ形式にリッピングできます。この素晴らしいソフトウェアを使用すると、画質を犠牲にすることなく、モバイルデバイスでお気に入りのDVDを表示できます。この強力なソフトウェアは、元の品質を維持しながらビデオデータを圧縮できます。 最良の部分は、ビデオエディタをリッピングする前に動画をカスタマイズできる組み込みのビデオエディタが含まれていることです。透かしや字幕をトリミング、トリミング、マージ、または追加することもできます。また、明るさ、コントラスト、飽和を調整することもできます。もう1つの優れた機能は、50倍の速い変換速度と同時に複数のDVDをリッピングできることです。 また、480pから1080p以上のビデオを簡単にアップスケールして、オリジナルよりも見栄えを良くすることもできます。さらに、DVDFAB DVDリッパーを使用してORCテクノロジーを使用して、DVD字幕をSRTデータに簡単に変換できます。また、このソフトウェアは、元のDVDディスクのタイトル、カバー、ディレクターなどのフレンドリーなメタ情報を出力ファイルにすぐに保存します。また、現在のテクノロジーと機能を継続的に更新することで、DVDFAB DVDリッパーが常に利用可能な最高のDVDリッパーになることを確認できます。 DVDFAB DVD RipperはDVD暗号化を削除してDV​​Dをデジタルに可能にしますか? DVDをコピーしようとした人は誰でも知っているように、洗練されたディスクは、そのプロセスが価値よりもはるかにトラブルのように見えるようになる可能性のある混乱するさまざまな証券で覆われています。ただし、DVDFAB DVDリッパーを使用すると、これらの保護を迅速かつ簡単に削除でき、手間をかけずに映画を喜ばせることができます。 CSS、APS、RC、Sony