কীভাবে: একটি নির্দিষ্ট বিরতিতে ওয়েব্যাক মেশিন থেকে একটি পৃষ্ঠা ডাউনলোড করুন


12

আমার অর্থ হ'ল ওয়েবব্যাক মেশিন থেকে প্রাপ্ত প্রতিটি পৃষ্ঠা একটি নির্দিষ্ট সময়কাল এবং বিরতিতে ডাউনলোড করা। উদাহরণস্বরূপ, আমি 2012 সালের জানুয়ারী থেকে ডিসেম্বর 2012 পর্যন্ত প্রকৃতি ডটকম থেকে প্রতিটি দিন উপলব্ধ প্রতিটি পৃষ্ঠা ডাউনলোড করতে চাই (

দুর্ভাগ্যক্রমে, ওয়েব্যাক মেশিন কীভাবে কাজ করে তার অনন্য প্রকৃতির কারণে উইজেট কাজ করবে না।

ওয়েব্যাক মেশিন ডাউনলোডারের মতো সরঞ্জামগুলি কেবল পৃষ্ঠার সর্বাধিক সাম্প্রতিক সংস্করণ ডাউনলোড করে download

আইএ এপিআইয়ের সাথে আলাপচারিতা একটি व्यवहार्य রুটের মতো বলে মনে হচ্ছে তবে কীভাবে এটি কাজ করবে তা আমি নিশ্চিত নই।

ধন্যবাদ!


আপনার অবশ্যই এটির জন্য একটি স্ক্রিপ্ট লিখতে হবে। হয়ত সিআরএল?
পালসজেট

আমি মনে করি সিআরএল-তে কোনও স্ক্রিপ্ট লিখতে এবং ঝুঁকানো সম্ভব হবে তবে ইন্টারনেট আর্কাইভ যে মেমোন্টো এপিআই ব্যবহার করে তা সম্পর্কে আমি অপরিচিত এবং মনে করি না যে আমি এটি এভাবে ব্যবহার করেছি দেখেছি।
অরল্যান্ডো মেরিনেলা

আমার ক) একসাথে একাধিক সাইটগুলি করা দরকার, খ) দীর্ঘ বিরতিতে প্রতিটি সাইটের একটি স্ন্যাপশট ধরুন (বলুন, 1998 থেকে 2001) এবং গ) সেই ব্যবধানটি আমি কী পরিমাণ স্ন্যাপশট নিতে চাই তা নির্দিষ্ট করতে সক্ষম হব।
অরল্যান্ডো মেরিনেলা

সম্ভাব্য সদৃশ: superuser.com/questions/828907/…
পালস জেট

একই সমস্যা. তারা কেবল একটি পৃষ্ঠা চায়, দেখে মনে হয় - ডাব্লুবি মেশিন ডাউনলোডকারীর জন্য ডকুমেন্টেশন অস্পষ্ট যে এটি এর মতো ব্যবধানে কাজ করে কিনা।
অরল্যান্ডো মেরিনেলা

উত্তর:


5

waybackইউআরএলগুলি যেভাবে ফর্ম্যাট করা হয়েছে তা নীচে রয়েছে:

http://$BASEURL/$TIMESTAMP/$TARGET

এখানে BASEURLসাধারণত হয় http://web.archive.org/web(আমি প্রায়শই বলি যে আমি যদি নিশ্চিত না তবে এটি কেবলমাত্র বেসেল URL)

TARGETস্ব বর্ণনামূলক (আপনার ক্ষেত্রে http://nature.com, বা কিছু অনুরূপ URL)

TIMESTAMPহয় YYYYmmddHHMMssযখন ক্যাপচার (ইউটিসি মধ্যে) তৈরি করা হয়েছিল:

  • YYYY: বছর
  • mm: মাস (2 ডিজিট - 01 থেকে 12)
  • dd: মাসের দিন (2 ডিজিট - 01 থেকে 31)
  • HH: ঘন্টা (2 ডিজিট - 00 থেকে 23)
  • MM: মিনিট (2 ডিজিট - 00 থেকে 59)
  • ss: দ্বিতীয় (2 ডিজিট - 00 থেকে 59)

যদি আপনি ক্যাপচারের সময়টির অস্তিত্ব না থাকার জন্য অনুরোধ করেন তবে ওয়েবেব্যাক মেশিনটি ভবিষ্যতে বা অতীতের হোক না কেন সেই URL এর নিকটতম ক্যাপচারে পুনর্নির্দেশ করে।

ইউআরএলগুলির সেট পেতে প্রতিটি দৈনিক ইউআরএল curl -I(HTTP HEAD) ব্যবহার করে আপনি সেই বৈশিষ্ট্যটি ব্যবহার করতে পারেন :

BASEURL='http://web.archive.org/web'
TARGET="SET_THIS"
START=1325419200 # Jan 1 2012 12:00:00 UTC (Noon) 
END=1356998400 # Tue Jan  1 00:00:00 UTC 2013
if uname -s |grep -q 'Darwin' ; then
    DATECMD="date -u '+%Y%m%d%H%M%S' -r "
elif uname -s |grep -q 'Linux'; then
    DATECMD="date -u +%Y%m%d%H%M%S -d @"
fi


while [[ $START -lt $END ]]; do
    TIMESTAMP=$(${DATECMD}$START)
    REDIRECT="$(curl -sI "$BASEURL/$TIMESTAMP/$TARGET" |awk '/^Location/ {print $2}')"
    if [[ -z "$REDIRECT" ]]; then
        echo "$BASEURL/$TIMESTAMP/$TARGET"
    else
        echo $REDIRECT
    fi
    START=$((START + 86400)) # add 24 hours
done

এটি আপনাকে 2012 এর প্রতিটি দিন দুপুরের সবচেয়ে কাছের ইউআরএলগুলি দেয়। কেবলমাত্র সদৃশগুলি সরিয়ে ফেলুন, এবং পৃষ্ঠাগুলি ডাউনলোড করুন।

দ্রষ্টব্য: REDIRECTভবিষ্যতে যদি 1 দিনের বেশি ইউআরএল থাকে তবে উপরের স্ক্রিপ্টটি সম্ভবত আরও এগিয়ে যেতে পারে তবে তার জন্য প্রত্যাবর্তিত ইউআরএল ডিকনস্ট্রাক্ট STARTকরা এবং সঠিক তারিখের মানের সাথে সামঞ্জস্য করা দরকার।


এই দুর্দান্ত, কেন? কারণ আমাদের কাছে কখনই সামগ্রী এবং ওয়েব.আরচাইভ.অর্গ.আরেকালে সংরক্ষণাগারভুক্ত সামগ্রী সরিয়ে ফেলা হয়েছে তার প্রমাণ এবং প্রমাণ রয়েছে। উপরের এই লিপিটি সংরক্ষণাগারভুক্ত সামগ্রী সংরক্ষণ করবে। অসাধারণ.
ডিয়ারস্পটার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.