2

あなたの幻想的な野球チームを分析し、1 日に複数回、推奨されるアクションを通知するプログラムを作成したいと考えています。問題は、あなたが私のサイトでファンタジー ベースボールをプレイしているのではなく、yahoo、cbs、espn などでプレイしていることです。

これらのサイトの大部分では、ファンタジー チームとリーグは公開されていないため、リーグ内のチームを表示するには、ログインしてリーグのメンバーである必要があります。

必要なのは、サーバーに送信されるこれらの各サイトのチーム ページのプレーンな html だけです。サーバーでファイルを解析および分析し、ユーザー通知を送信できます。

問題は、必要なときにこのデータをサーバーに簡単に取得するために、ユーザー名とパスワードの組み合わせが必要なことです。yahoo/espn/cbs のパスワードを私に任せたくない人はたくさんいると思います。

この問題を解決するためのいくつかの可能な方法を考え出しました。

  1. 最も明白な方法は、チームがホストされているサイトの資格情報を要求することです。次に、プログラムでログインして、必要なデータを要求するだけです。多くの人が私に自分の資格情報を提供することを快く思っていると思いますが、多くの人はそうではありません。

  2. ユーザーがダウンロードするデスクトップクライアントを作成します。クライアントは資格情報を必要としますが、基本的にサーバーベースのバージョンとまったく同じことを行い、ログインし、ページを要求し、ページをサーバーに送り返すことができます. 違いは、パスワードがデスクトップから離れる必要がないことです。このメソッドが機能するには、コンピューターの電源が入っていて、このプログラムが実行されている必要があります。

  3. 必要なページに移動するブラウザー アドオンを作成し、前回のログインで保存された Cookie を使用してサイトにログインし、そのページをサーバーに送り返します。これにより、ソフトウェアがパスワードを要求する必要はありませんが、Cookie の有効期限が切れると、私はうんざりし、ブラウザのアドオンについてはあまり知りません。

他のオプションがあると確信していますが、これらは私がこれまでに思いついたものです。

2 つの質問があります: 1. このタイプのタスクの他の可能性は何ですか? 2. 人々が yahoo (たとえば) のパスワードを教えたがらないことを過大評価していませんか? 選択肢 (1) は当然の選択ですか?

ヤフーのパイプを試すようコメントで提案されましたが、有望な提案のように見えたので、少し調べてみました。これを見て、それは選択肢ではないと思います。したがって、オプション 1 を使用することになるようです。

4

3 に答える 3

2

これは、私が数年前に同じことをしたいと思ったときに取り組んだ問題です。私たちのサイトはhttp://benchcoach.comで、検討していたオプションは次のとおりです。

元のユーザーの資格情報とログインを取得することを検討しました。次に、ログインして、リーグとチームの情報をスクレイピングします。問題は、さまざまなサービス条件のいくつかを読んだ後、これは間違いなくサービス条件に違反することです. この上、Yahoo! は間違いなく私たちが検討していたサイトの 1 つであり、そのユーザーは電子メール (機密データにアクセスできる場所) を持っており、Yahoo! 財布。さらに、Yahoo/ESPN/CBS が IP アドレスでプログラマティック ログインをブロックするのは簡単なことです。

私たちが決めた解決策 (100% 満足というわけではありませんが、機能しているようです) は、現在の html ページをサーバーに投稿するブックマークレット (delicious、digg、reddit など) をインストールするようユーザーに依頼し、そこでデータを解析できるようにすることでした。データベースをロードします。ユーザーがまだ Yahoo/ESPN/CBS アカウントにログインしている場合は、そのページに直接誘導しますが、ログインしていない場合は、それらのサイトで認証を求めるプロンプトが表示されます。ブックマークレットをもう一度クリックすると、ページがサーバーに投稿されます。

このアプローチの利点は、誰の資格情報も収集しないため、セキュリティに関する懸念が軽減されることでした。第二に、Yahoo/ESPN/CBS がサービスへのアクセスをブロックすることは不可能になります。なぜなら、私たちは彼らのサーバーに直接接続することはなく、むしろユーザーのブラウザーがブラウザーのコンテンツを私たちのサーバーに投稿するからです。

これの問題は、私たちのサイトにページを投稿するのに 2 回のクリックが必要なことです。1 対 1 のリーグでは 3 ~ 4 ページが必要だったので、ユーザーはリーグをサーバーに同期するのに 6 ~ 8 回のクリックが必要でした。これについてはまだオプションを検討中です。

重要な注意点の 1 つは、1 年前の会議で Yahoo Fantasy Football サイトのプロダクト マネージャーに出くわしたことです。Yahoo のデータを取得する方法について話しましたが、資格情報を取得すると TOS に違反し、停止する可能性があることを確認しました。彼らがそうしたとは思いませんが、これを開発するために時間とエネルギーを投資するのが難しくなり、アカウントを閉鎖して私たちのサイトをブロックし、ユーザーを怒らせました.

于 2009-09-11T05:10:48.923 に答える
2

潜在的により複雑な答えは、(たとえば) yahoo パイプを使用して実行できる可能性があります。

仮説として、ユーザーに資格情報の入力を求め、スクレイピングされたデータを含む URL を提供するパイプを作成します。この URL をサイトに入力するだけで、資格情報を直接提供する必要はありません。さらに良いことに、セキュリティを重視する人にとっては、情報を入力する前にパイプが実際に何をしていたかを調べることができます.

欠点は、複雑さが増すことです (パイプを作成して維持する必要があるだけでなく)。そうは言っても、サイトから公開されたパイプへのリンクを直接提供して、物事をできるだけ簡単にすることができます.

于 2009-04-29T07:27:03.300 に答える
1

オプション 1 は当然の選択です。あなたのサイトを信頼する人が詳細を提供します。スクリーンスクレイピング中に他のサイトにログインする方法は他にありません。

于 2009-04-29T06:50:31.517 に答える