Вытягиваем рисунки со страницы сайта средствами php

Недавно писал как вытащить все с страницы теперь рассмотрим как вытащить . Собственно оттого что мне было лень вручную копировать с одной странички написал скриптик. Вообще лень помоему самый главный двигатель прогресса.

Итак что мы сначало делаем используя скачиваем контент со страницы и вытягиваем из него все ссылки на картинки

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$url="http://irr.ru/"; //урл с которого тянем картинки
 
function get_web_page( $url )
{
$uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
 
$ch = curl_init( $url );
 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // возвращает веб-страницу
curl_setopt($ch, CURLOPT_REFERER,"http://google.com/");
curl_setopt($ch, CURLOPT_HEADER, 0); // не возвращает заголовки
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 10); // переходит по редиректам
curl_setopt($ch, CURLOPT_ENCODING, ""); // обрабатывает все кодировки
curl_setopt($ch, CURLOPT_USERAGENT, $uagent); // useragent
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
curl_setopt($ch, CURLOPT_TIMEOUT, 120); // таймаут ответа
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);// останавливаться после 10-ого редиректа
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT']."cookie.txt");
//curl_setopt($ch, CURLOPT_PROXY, $_SERVER['DOCUMENT_ROOT']."proxy.txt");
 
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
 
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
 
if(!is_dir("adsimg")){mkdir("adsimg");}
$bi = 0;
$result=get_web_page( $url );
while($bi < 10)
{
if($result == '')
{
echo "Ошибка соединения(1). Пробуем еще раз.<br>";flush();ob_flush();flush();
$result=get_web_page( $url );
$bi++;
}
else $bi = 20;
}
//print_r($result);
$content = $result['content'];
 
//-------------------------------------$photo-----------------------------------------------------
preg_match_all('/img\/catalog\/icons\/.*?gif/i',$content,$foto);

дальше по полученным ссылкам тянем картинки с сайта и складываем их себе в папочку.

1
2
3
4
5
6
7
8
9
10
11
12
13
$page=count($foto[0]);
for ($p=0;$p<$page;$p++){
$photo=str_replace('img','http://irr.ru/img',$foto[0][$p]);
$url_img=trim($photo);
echo "Тянем картинку ".$photo."<br>"; flush();ob_flush();flush();
$home_url_img=$_SERVER['DOCUMENT_ROOT']."/irru/adsimg/".basename($url_img);
 
if (!file_exists($home_url_img)) {
$image=file_get_contents($url_img);
$fp=fopen($home_url_img,"w+");
fwrite($fp,$image);
fclose($fp); }
}

ну и весь скрипт целиком даже глазом не успеем моргнуть, а картинки уже готовы для дальнейшего употребления.

4 Responses
  1. Tweets that mention Вытягиваем рисунки со страницы сайта средствами php |Разное -- Topsy.com:

    [...] This post was mentioned on Twitter by phphub ru. phphub ru said: Вытягиваем рисунки со страницы сайта средствами php: Недавно писал как вытащить все ссылки с… http://goo.gl/fb/5sFtP [...]

  2. energ:

    Чет ошибка с preg_match_all

  3. да поправил просто WP сам код поменял видимо теперь нормально должно быть

  4. ShtuGrass:

    напиши на почту…есть работа

Leave a Reply

You must be logged in to post a comment.