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

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

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

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

あなたの心を持つ群れの単細胞生物あなたの心を持つ群れの単細胞生物

脳波を含む多くのプロジェクト提案は、そのタイプのコントロールのうちにそれほど出るのが難しいので渡されます。 このプロジェクトは必ずしもこれでコントロール側を進歩させるわけではありませんが、あなたはあなたの考えとの牧命のある人生の形が近いこぎりに値することを認めなければなりません。 [Geva]彼が一日中泳ぐことを嬉しくする小さな単細胞生物と対話することを可能にするリグを設置しました。 脊椎動物のように、彼らは感電の大きなファンではありません。 流体を通していくつかの電流を走らせ、それらは負極に向かって泳ぐでしょう。 この実験は電極として4つの鉛筆リードを使用します。 これらは、玩具脳波装置からの入力に反応するアルドイノによって駆動される。 ただ最善の方法で集中し、彼らはあなたが彼らになるところはどこでも泳ぎます。 これはゴキブリのマインドコントロールとして関わっていますが、それは面白いほどビットです。

Googleは、FitbitビルトインGoogleは、Fitbitビルトイン

でPixel Viewを発表しました。Googleは本日、Fitbitからいくつかのイノベーションを借用し、Paywallの後ろに置くウェアラブルである史上初のPixel Watchを明らかにしました。 しかし、追加のお金を使いたくない人にとっても、ここには十分なものがあるかもしれません。 元々5月にGoogle I/Oでプレビューされた新しいPixel Watchは、厚さ12.3mmのケースで41mmの円形スタイルを機能させます。常にオンになっている画面は、すべての方法を状況の端に移動するわけではなく、私たちが好んだよりも大きなベゼルであることは確かに残ります。それでも、暗い景色の顔は、おそらくそのベゼルが本当にそれよりも小さく見えるようにするでしょう。 状況自体に関しては、リサイクルされたステンレス鋼で作られており、3色で利用できます。マットブラック、磨かれた銀、磨かれた金。たとえば、Apple Watchとは非常に異なっているだけでなく、すべて曲線的です。 センサーの観点から見ると、典型的な血液酸素とECGの性能が存在するだけでなく正しいと述べていますが、Googleは心拍数追跡は非常に正確であり、Fitbit Techに基づいていると述べています。 Fitbitといえば、Fitbitプレミアムが必要な機能がいくつかあります。Googleは、「より深い洞察を得るだけでなく、日常の準備スコアなどの機能にアクセスできるようになるため、トレーニングを全面的に行ったり、休息を優先するかを理解してください。 」ビューの購入者も同様に、「1,000を超えるワークアウトと400のマインドフルネスセッション」の恩恵を受けます。 新しいピクセルビューは、WiFiモデルの349ドルから始まりますが、LTEバージョンは携帯電話計画を要求しますが、LTEバージョンは399ドルを費やします。今日からピゼルビューを事前注文することと、10月13日に紹介することができます。 同様に検査するのが好きかもしれません: ダウンロード:IOS 16.1 Beta 4が公開紹介としてリリース 貧しいiOS 16バッテリー寿命の修復方法[ガイド] ジェイルブレイクiOS 16.0.2 iPhoneおよびiPad状態の更新 iOS 16互換性とサポートされているiPhone、iPad、iPod Touchデバイス iOS 16隠された機能:100以上の変更Appleが教えてくれなかった ダウンロード:iOS

Android P-ifyAndroid P-ify

を使用した8.1 Oreo GadgetでAndroid P機能を取得します。そういえば、残念ながら、GoogleはNexus 6Pと5Xのサポートを終了しました。 Android P-ify Xposed Moduleは、Android GadgetをAndroid 8.1 Oreoを実行しているあらゆるタイプのAndroidガジェットにAndroid P機能をもたらします。 Android Pは、セキュリティの改善、メッセージングの改善、マルチカメラAPI、新しいクイック設定アイコン、左上にクロックが左上にある丸い状態のあるコンディションバー、丸い丸みを帯びた、多数の変更と、多数の変更と機能をもたらします。ドックのエッジ、その他のシステムダイアログ、メニュー、設定ページの活気のあるアイコン、新しいおよび改善されたスクリーンショット機能、スクリーンカットアウトのサポートなど。 Android Pで新しいものを正確に理解したい状況では、Android Pの多くの視覚的修正についてすでにカバーしています。 次に、Android 8.1 OreoがインストールされているガジェットでAndroid P機能を取得する方法に正確に焦点を当てましょう。はい、あなたはそれを正しくチェックアウトしました、今、あなたはAndroid 8.1ガジェットでAndroid P-ifyと呼ばれるXposedモジュールを備えたAndroid P機能を取得することができます。 Xposedモジュールは、現在Android P DP1で提供されているすべての視覚的修正をもたらすことを目的としています。このモジュールで提供される機能は、以下にリストされています。 Android P-ify