9
4

4 に答える 4

7

残念ながら、Tumblr API にはいくつかの制限 (リブログに関するメタ情報の欠如、メモが 50 までに制限されている) があるようで、すべてのメモを取得することはできません。

利用規約により、ページのスクレイピングを行うことも禁止されています。

「サービスへのアクセス中またはサービスの使用中に、次のことを行うことはできません。(...) サービスをスクレイピングし、特に、Tumblr の明示的な事前の書面による同意なしに、サービスからコンテンツ (以下に定義) をスクレイピングすること。」

ソース:

https://groups.google.com/forum/?fromgroups=#!topic/tumblr-api/ktfMIdJCOmc

于 2013-01-19T17:22:40.143 に答える
5

JS を使用しないと、メモのみを含む別のページが表示されます。上記のブログ投稿の場合、最初のページは次のようになります。

http://ronbarak.tumblr.com/notes/40692813320/4Y70Zzacy

次のページは下部にリンクされています。

(の属性で次の URL を見つける方法については、私の回答を参照してください。)aonclick

これで、さまざまなツールを使用してデータをダウンロード/解析できるようになりました。

次の wget コマンドは、その投稿のすべてのメモ ページをダウンロードする必要があります。

wget --recursive --domains=ronbarak.tumblr.com --include-directories=notes http://ronbarak.tumblr.com/notes/40692813320/4Y70Zzacy
于 2013-01-20T18:54:30.217 に答える
3

Fabio が示唆するように、API を使用することをお勧めします。

なんらかの理由でそれができない場合、使用するツールは、投稿内のデータで何をしたいかによって異なります。

  • データ ダンプの場合: urllib は、必要なページの文字列を返します。
  • HTMLで特定のセクションを探しています:lxmlはかなり良いです
  • 手に負えない html で何かを探しています: 間違いなく美しいスープ
  • セクション内の特定のアイテムを探しています: beautifulsoup、lxml、テキスト解析が必要です。
  • データをデータベース/ファイルに入れる必要があります: スクレイピーを使用します

Tumblr の URL スキームは単純です: url/scheme/1、url/scheme/2、url/scheme/3 など... 投稿の最後に到達し、サーバーがデータを返さなくなるまで。

したがって、強引にスクレイピングを行う場合は、コンテンツ タグなどのデータが空になるまで、ハード ドライブ上のすべてのデータをダンプするようスクリプトに簡単に指示できます。

最後のアドバイスとして、Tumblr サーバーに負荷をかける可能性があるため、スクリプトに小さなスリープ (1000) を入れることを忘れないでください。

于 2013-01-19T18:36:05.360 に答える
0

tumblrにすべてのメモをロードする方法は? もトピックをカバーしていますが、 unor の応答 (上記) は非常にうまく機能しています。

于 2016-09-16T18:59:59.307 に答える