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

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

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

ただし、出発時期だけでなく到着に関するデータを一部提供しています。レールサイトで任意の種類のブラウザで提供されるデータを掘り下げると、過去のスケジュール/実際の到着データを問い合わせることができました。結果は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

10 Androidのベスト20 MBゲームプレイする必要があります10 Androidのベスト20 MBゲームプレイする必要があります

内部電話ストレージは長年にわたって増加していますが、豊富なアプリはすべてのMB物質を作ります。今日、Androidデバイス用の10の最高の20 MBゲームをお勧めします。以下で提供される最高の無料の軽量ゲームのサイズは、正確に20 MBではありませんが、5 MBから20 MBの範囲です。 20 MB未満のこれらのAndroidゲームは、魅力的で素晴らしいゲームプレイを提供するだけでなく、より少ないスペースを占有しています。このようにして、あなたは時間を殺し、あなたの両方の貴重な保管を保存することができます。私たちが書くサイズは初期インストールサイズであることに留意してください。ゲームをプレイすると、実際にデバイスストレージで占有するサイズが増加します。 1.メコラマ(サイズ5.3 MB) 美しく作成されたパズルゲームであるMekoramaは、5.3MBの設置サイズのみで何時間もの楽しみを使用しています。宇宙飛行士は小さな島のような場所に立ち往生しており、あなたの目標は彼が逃げるのを助けることです。コントロールは、宇宙飛行士が行くことを伝えるために購入するだけでタップしなければならないことを考えると、かなり基本的です。また、物事をドラッグして新しいパスを作成することで彼を助けることができます。 Mekorama-Androidゲーム 52のレベルが完了することで、Mekoramaはあなたに必要な挑戦と楽しみの両方を提供することが保証されています。また、エクスペリエンスを大幅に追加するゲームの魅惑的な音楽にも注意する必要があります。 [GooglePlay url =””] 同様のゲーム:20 MB未満の5つの最高のAndroidゲーム 2. Zigzag(サイズ20イッシュMB) Zigzagは、シンプルでありながら見事な3Dグラフィックを備えた別のゲームです。このゲームでは、ボールの役割を想定しており、あなたの目標は、無限に生成された風景の端から落ちることなく、できる限り転がることです。 もちろん、スコアを進めて増やすと、ゲームはより挑戦的になり、ボールの速度を高め、ステップオーバーしなければならないパスを狭くします。 Zigzag-Androidゲーム ボールがナビゲートできるようにするには、画面をタップするだけで、ボールがマップの周りを90度回転させるのに十分です。ハイスコ​​ア志向のゲームに夢中になっている場合は、Zigzagをダウンロードして試してみてください。 [GooglePlay url =””] また読む:5MB未満の5つの最高の無料のAndroidゲーム 3.ラインゼン(サイズ7.5 mb) Line

リチウム細胞の救済、ならびに回路リチウム細胞の救済、ならびに回路

リチウム細胞は、ニッケルカドミウム、ならびにニッケル金属水素化物をほぼあらゆる方法で提供する。しかし、彼らは同様に彼らを最大限に活用するために少しもっと多くのベビーシッターを要求します。それはそれらを適切に充電する管理回路の種類で利用可能であり、それらを放電中に特定の電圧しきい値を下回らないようにします。私たちは、それがこれらの懸念について話しているように、私たちは[カルロス]リチウムセル救済の取り組みについての読みを喜んでいます。 彼は彼のプロジェクトのためのリチウムの電源を救うことを望みました。彼は右側に示されているデジタルフォトフレームからの単一の吹き出しセルに加えて、左上に見られた死んだMacBook Proから3つのセルパックを持っていました。 3パックは各セルを個別にスクリーニングしなかったので、1つの死がバッテリー全体を占めていました。彼はそれらを軽蔑したとともに彼らの電圧レベルを調べて、まだ使えるものを発見しました。彼の仕事を2.7Vマークの下のソースを排水するのを避けるために、彼はデジタルフォトフレームからの回路カードを掃除しました。システムだけでなく、システムも稼働しているだけでなく、稼働しています。 このものを怖がらせないでください。あなたが基礎を発見した場合、それはあなたのプロジェクトでこれらの強力な電池を利用するのが簡単です。もっと多くの背景のために、この課金チュートリアルを調べてください。

ダウンロード:iOS 16.1 / iPados 16.1 RC OTAプロファイルリリースダウンロード:iOS 16.1 / iPados 16.1 RC OTAプロファイルリリース

iOS 16.1 RCとiPados 16.1 RC OTAプロファイルデータとIPSWリンクをダウンロードできるようになりました。ここに詳細があります。 Appleは本日、iOS 16.1の最終ベータ版とiPados 16.1をリリースしました。これは、公開ベータプログラムに参加している人に加えて、公開前にそれらをテストできるようになりました。 Appleは同様に、iPados 16が10月24日に一般に出荷されることを確認し、iPados 16.1については言及していません。ただし、先月iOS 16アップデートが世界に提供されました。 個人がiOS 16.1で先を見据えていることに関しては、たくさんあります。オンラインアクティビティは初めてサポートされますが、Appleは同様にクリーンエネルギー充電のサポートを追加しています。これは、クリーナーエネルギーが地域の発電所で利用されている場合にiPhoneのみを有効にする機能です。 その他の機能強化には、辞任されたバッテリーサインと、以前はサポートしていなかったガジェットのポーションサインが含まれます。 開発者は、必要なベータプロファイルをインストールしたガジェットにiOS 16.1とiPados 16.1ベータをダウンロードできるようになりましたが、パブリックベータリリースは数日以内に表示されると予想されます。 iOS 16.1とiPados 16.1のリリースは、Appleの更新が発表されたWWDCイベントで6月に始まった長期のベータプログラムを終了させます。執筆時点でMacos Venturaがいつ現れるかの公式確認をまだ待っていますが、iPados 16とともに10月24日に行われる予定です。 同様に検査するのが好きかもしれません: ダウンロード:iOS 16.1 / iPados 16.1