рд╡реЗрдм рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рдПрдБ

рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕реЗрд╡рд╛ рд╡реЗрдм-рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реИред
рд╣рдореЗрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╕рд┐рд░реНрдл 5 рдорд┐рдирдЯ рдореЗрдВ рд╣реЛрдЧрд╛ред

рдЙрджреНрджреЗрд╢реНрдпреЛрдВ:


1) рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рдПрдВ (рд▓рдВрдмрд╛рдИ рдФрд░ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдкрд░ рдХрдмреНрдЬрд╛ рди рдХрд░реЗрдВ)
2) рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА:


- рдУрдПрд╕ - рдЙрдмрдВрдЯреВ 10.04
- xvfb - рд╡рд░реНрдЪреБрдЕрд▓ рдлреНрд░реЗрдордмрдлрд╝рд░ (рдирдХрд▓реА рдПрдХреНрд╕рд╕рд░реНрд╡рд░)
- CutyCapt - рд╡реЗрдм рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛
- php - рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП


рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:



- рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди


1. xvfb рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдпреЛрдЧреНрдпрддрд╛ xvfb рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

2. CutyCapt рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛


2.1 рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рддреЛрдбрд╝рдлреЛрдбрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

рдпреЛрдЧреНрдпрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рддреЛрдбрд╝рдлреЛрдбрд╝ libqt4-webkit libqt4-dev g ++

2.2 SVN рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, CutyCapt рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

mkdir / usr / ccapt
рд╕реАрдбреА / рдпреВрдПрд╕рдЖрд░ / рд╕реАрдкреАрдЯреА
svn co cutycapt.svn.sourceforge.net/svnroot/cutycapt

рдЕрдЧрд▓рд╛, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ:

рд╕реАрдбреА рдХрдЯрд╛рдЗрдХреИрдк / рдХрдЯрдХ
qmake
рдореЗрдХрдЕрдк

рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ

xvfb-run --server-args = "- рд╕реНрдХреНрд░реАрди 0, 1024x768x24" / usr / ccapt / cutycapt / CutyCapt / CutyCapt --url = http: //habravel.ru --out = / var / www / images / habrahabr_ruред рдЬреЗрдкреАрдЬреА

- рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕


3.1 рд╣рдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг php рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВрдЧреЗ


<? //    $path = '/var/www/images/'; // URL       $web = 'http://kih.kz/images/'; function screenshot($source,$filename) { system('xvfb-run --server-args="-screen 0, 1024x768x24" /usr/ccapt/cutycapt/CutyCapt/CutyCapt --url=http://'.$source.' --out=/var/www/images/'.$filename); } if(!isset($_POST['url'])) { print '<html>'. '<head>'. '<title>  </title>'. '</head>'. '<body>'; print '<form action="" method="post">'. 'URL:<br />'. '<input name="url" type="text" value="http://">'. '<input type="submit" value="Send">'. '</form>'; print '</body>'. '</html>'; } else { //      .   url  host $site = parse_url($_POST['url']); //          $filename = str_ireplace('.','_',$site["host"]).'.jpg'; //     if(file_exists($path.$filename)) { //     -    if (system('find '.$path.' -type f -name '.$filename.' -mtime -1')) { print ',          !<br />'; print '<a href="'.$web.$filename.'">'.$web.$filename.'</a>'; } else { screenshot($site["host"],$filename); print '<a href="'.$web.$filename.'">'.$web.$filename.'</a>'; } } else { screenshot($site["host"],$filename); print '<a href="'.$web.$filename.'">'.$web.$filename.'</a>'; } } ?> 


рдирд┐рд╖реНрдХрд░реНрд╖:


рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХреЗ рд╕реЗ, рд╣рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдЗрдЯ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдорд┐рд▓рд╛ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлреНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рддрд╛ рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдП рдЧрдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдпреБрдкреАрдбреА:
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдмрдирд╛рдирд╛ рдХрд╛рдлреА рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред (рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рд╛рдЗрдЯ рдХреЗ рдЪреИрдирд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ)ред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдХрдордЬреЛрд░ рд╡реАрдбреАрдПрд╕ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ рд▓реЛрдб рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рд╢рд┐рдХрд╛рдпрдд рди рдХрд░реЗрдВред

UPD2:
рдореЗрд░рд╛ рдХрдордЬреЛрд░ рд╡реАрдбреАрдПрд╕, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рднрд╛рд░ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In128292/


All Articles