اسکرین شات گرفتن از یک وبسایت در لینوکس (خط فرمان) :: Mr Python | مستر پایتون

اسکرین شات گرفتن از یک وبسایت در لینوکس (خط فرمان)

  • ۳۶۳

اسکرین شات گرفتن از یک وبسایت در لینوکس (خط فرمان)

 

درود به همه !

 

امروز میخوام یه چنتا ابزار بهتون معرفی کنم که کار همشون اینه که میتونن از یه وبسایت با یه آدرس مشخص مثلا mrpython.blog.ir اسکرین شات بگیرن و در فرمت های تصویری مثل png برای شما ذخیره کنن.

خب این ابزار هایی که معرفی میکنیم فقط برای لینوکس هستن و در ترمینال یا همون خط فرمان لینوکس ازشون استفاده میکنیم .

 

برای عکس برداری از یک وبسایت ابزار های زیادی هست . دوتا از بهترین هاشو با طرز استفاده اش برای شما شرح میدم .

 

۱ - ابزار cutycapt

خب یکی از بهترین ها و البته ابزار مورد علاقه ی من ابزار cutycapt هستش که قابلیت اسکرین شات گرفتن از یه وبسایت رو داره . برای نصب این ابزار کافیه در خط فرمان دستور زیر رو وارد کنیم :

MrPython@debian:~$ sudo apt install cutycapt

 

اما میریم سراغ طرز استفاده ازش . این ابزار دوتا پارامتر خیلی مهم داره یکی url که آدرس سایتی که میخوایم عکس بگیریم رو بهش میدیم و یکی هم out که مسیر و نام فایل خروجی رو بهش میدیم . دستور زیر از وبسایت google.com یه اسکرین شات میگیره و با نام google.png ذخیرش میکنه :

MrPython@debian:~$ cutycapt --url=google.com --out=google.png

 

 2 - ابزار wkhtmltopdf

ابزار wkhtmltopdf یه ابزار کاربردی هستش که میتونه از یه وبسایت برای ما اسکرین شات بگیره و به صورت تصویر یا فایل پی دی اف ذخیره کنه .

 

برای نصب این ابزار از دستور زیر استفاده میکنیم :

MrPython@debian:~$ sudo apt install wkhtmltopdf

بعد از نصب ابزار میریم سراغ کار کشیدن ازش .  وقتی نصبش کنین در واقع دوتا ابزار روی لینوکستون نصب میشه . یکی wkhtmltopdf که خروجی پی دی اف میگیره و دیگری wkhtmltoimage که خروجی تصویری میگیره .

طرز کارش خیلی سادس . با دستور زیر ما یه اسکرین شات از گوگل میگیریم و در فایل google.pdf با فرمت پی دی اف ذخیره میکنیم .

MrPython@debian:~$ wkhtmltopdf google.com google.pdf

 حالا با دستور wkhtmltoimage هم میتونیم خروجی تصویری بگیریم . مثال زیر :

MrPython@debian:~$ wkhtmltoimage google.com google.png

 

 

خب این دوتا ابزارای خوبی هستن . حالا که طرز کارشو یاد گرفتیم میتونیم باهاش یه اسکریپت بش بنویسیم که یه کار باحال بکنه . فرض کنید شما یه لیست بلندی از دامین های مختلف دارین . میخواین همشو ببینین صفحه اولشون چه شکلیه . خب این کار زمانبره باید تک تک اینارو توی مرورگر باز کنین و ببینین . یه اسکریپت مینویسیم الان که یه لیست دامین بهش میدیم خودش تک تک عکس میگیره ازشون وذخیره میکنه . این اسکریپت رو با بش اسکریپت نوشتم .

سورس :

#!/bin/bash
#Author : Hossein Ahmadi

read -p "Url List File : " file
while read url
do
    if [ $url != "" ]
    then    
        cutycapt --url=$url --out=./$url.png
        result=$(file $url.png)
        if [ "$result" == "$url.png: PNG image data, 800 x 600, 8-bit/color RGBA, non-interlaced" ]
        then
            echo "$url -> [ERROR]";
            rm "$url.png"
        else
            echo "$url -> [OK]";
        fi

    fi

done < $file

 

خب سورس زیر رو بنویسید داخل یه فایل و با یه اسمی ذخیرش کنید . من اسمشو میزارم siteshow.sh . بعد برای تبدیل اسکریپت به فایل اجرایی دستور زیر رو وارد میکنیم :

MrPython@debian:~$ chmod +x siteshow.sh

به جای siteshow.sh شما اون اسمی که ذخیره کردین رو وارد کنین . 

حالا برای اجرا کردنش کافیه دستور زیر رو وارد کنیم :

MrPython@debian:~$ ./siteshow.sh

بازم اینجا دوباره به جای siteshow.sh اسمی که خودتون ذخیره کردین بزنین . بعد که اسکریپت باز شد از شما فایل دامین ها رو میخواد . مثلا یه فایل من درست میکنم اینا رو مینویسم داخلش :

google.com
bing.com
yahoo.com
blog.ir
mrpython.blog.ir
hack.chat
telegram.org
instagram.com

حالا مثلا با اسم list.txt ذخیره میکنم . اونجا که اسکریپت این فایل رو میخواد اسمشو وارد میکنم مثلا list.txt بعد دیگه شروع میکنه ازشون اسکرین شات بگیره و ذخیره کنه .

 

یه کوچولو برگرفته از :

https://www.binarytides.com/take-webpage-screenshot-from-command-line-in-ubuntu-linux/

یا حق !

نظرات: (۰) هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی