
このスクリプトは、影響を受けるすべての問題を含む、オフラインで読み取ることができるすべてのアクティブページを保持するミラーフォルダを作成します。
#!/bin/bash
USERNAME=rubo77
MAXDEPTH=2 # increase this if you want to backup more of your history
USERID=1047481
mkdir -p mirror_$USERNAME
cd mirror_$USERNAME/
TEMP=/tmp/tmp.stackexchange_export
wget http://stackexchange.com/users/$USERID/$USERNAME?tab=accounts -q -O $TEMP
for SITE in $(grep account-icon $TEMP -A 4 | grep users | sed -r 's/.*(http[^"]*)".*/\1/g'); do
echo '### ' $SITE ' ###'
for c in $(seq 1 2); do
DIR=$(echo $SITE|tr / _|sed s/^http:__//)$c
mkdir -p $DIR
cd $DIR
httrack "$SITE$USERNAME/?tab=activity&sort=all&page=$c" \
-* "+*/questions/*" +*sstatic.net* +*googleapis* \
+*gravatar* +*imgur.com* +mime:text/css -r2 -N1
cd ../
done
done
しかし、外部画像(アバターなど)とimgurの埋め込み画像をどのように含めますか?
答え1
まず、注意してくださいグアシャエチケット、そうでなければブロック/制限。
プログラミングが好きな場合は、次の点を検討してください。スタック交換API代わりに、たとえば、次のいずれかを展開します。スタックアプリケーション良いスタックプリンタ。これを見て円そして関連質問データをインポートする方法と、それを実行するアプリケーションの詳細をご覧ください。
しかし、あなたの質問によれば、オフラインAtom / RSSリーダーを使用して購読することが最善のサービスを受けることができるようです。アカウントの変更
編集1:オフラインの場合にのみ同じサイトにアクセスするには、キャッシュHTTPプロキシを使用することをお勧めします。私は良い経験をしましたwwwoffleたとえば、過去には(手動で指示しない限り、期限切れではなく、クリックしたリンクもオフラインで使用できなかったため、次回オンラインになったときにそのリンクを取得します)、ほとんどすべてのキャッシュプロキシは問題ありません。正しく設定した場合(特にディスクの制限/有効期限)、インターネット全体をキャッシュしたくない場合は(この場合は通常は行われません)、特定のURLのみをキャッシュするようにプロキシを設定するか、Webブラウザ自体で実行する必要があります(例:キツネの代理人または簡単な使用.pac ファイル。これは素晴らしい、透明に動作し、プログラミングを必要とせず、SEサイトの負荷を軽減します(画面スクレイピングの例のように、短時間で多数の要求でサイトを台無しにする代わりに)。
それでもスクリーンスクレイピングの使用にこだわったらうまくいきます。ただし、必要なものだけをインポートし、それ以上はインポートしないように注意する必要があり(サイトが変更されたらスクリプトを更新し続ける必要があります)、URLを検索した後は追加のブロックを防ぎ、既存のキャッシュされたコンテンツが変更されていない場合は再利用するために途中で遅延(wget --mirror
など)しかし、より細かいニュアンスを得るためには、プログラミングが必要になる可能性が高い(sed / awkがあるシェルでも)。
--user-agent="RuboScraper-1.1"
この場合、スクリプトがブロックされたときに悪意のない残りの動作をブロックしないように、常にカスタムユーザーエージェント(たとえば)を設定してください。得る世界に。機能したら着用してください。スタックアプリケーションそして、ここに接続すると、他のユーザーが車輪を再構築したり壁にぶつかったりするすべての作業を行う必要はありません。