0

まず、Twitter アカウントのすべてのフォロワーを取得したいと考えています。少し調べてみたところ、Nokogiri または Mechanize gem を使用して、Ruby on rails で Web スクレイピングを実行できることがわかりました。また、Web スクレイピングに使用する CSS セレクターも取得しました。HTML ページのソースを調べても、アカウントのすべてのフォロワーが表示されません。

Web スクレイピング コードを使用してすべての Twitter フォロワーを取得できますか、それとも Twitter API を使用する必要がありますか?

4

2 に答える 2

6

一般的に言えば、可能な限り API を絶対に使用してください。

その名前が示すように、「スクレイピング」では、アプリケーションの「表面」、MVC 用語で言えば (HTML) ビューを扱うだけです。これらのビューはいつでも変わる可能性があります。Twitter や他の同様のサービスがサイトの再設計を行う回数を考えてみてください。スクレイピングを行っている場合、サイトの再設計のたびに、それが些細なものであっても、既存のコードが壊れる可能性が非常に高く、(警告なしに) 当て推量に基づいて必死に更新を行う必要があります。

Nokogiri と Mechanize は強力なツールですが、常に変化する「表面」を完全にバイパスしてデータベースのコンテンツに直接アクセスする API の機能性、安定性、一貫性とは比較になりません。Twitter の場合、API にアクセスするためのTwitter gemなどの API ラッパーの追加の利点があり、API にユーザーフレンドリーなレイヤーを追加して、アプリケーションへの統合をさらに簡単にします。

要約すると、おそらく Twitter gem などの API ラッパーを介して API を使用します。

于 2012-11-08T00:09:22.797 に答える
4

通常、Web スクレイピングは、サービスが API を提供していない場合、または API が必要なすべての機能を十分に提供していない場合の最後の手段です。

最初にAPIを調べます。これが設計されたものです。

Web スクレイピングは、Web サイトの構造が大幅に変化し、コードが機能しなくなる可能性があるため、問題になる可能性があります。

一般に、パブリック API には、提供されるデータに劇的な変更が加えられないという、ある種の契約がある傾向があります。変更がある場合、API は API のバージョン管理 (古いバージョンの API を呼び出す機能) を提供するか、変更内容と変更時期に関する情報を提供するドキュメントを提供します。

また、Web スクレイピングには、追加の帯域幅などの他のコストがあります。通常、API から取得したデータは、アプリケーションでより役立ちます。

必要な API にアクセスするために必要な多くの基本機能を提供するかなりの数のライブラリ (ruby gem) もあります。また、通常、API が更新されると更新されます。

于 2012-11-08T00:02:49.493 に答える