Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Парсинг изображений
bortmehannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 42955
На форуме: 6 месяцев, 20 дней
Карма:




Добрый день, хочу спросить у гуру php)
Как спарсить изображение отсюда http://www.intuit.ru/verifydiplomas/100890767 ?
Уже всю голову сломал, не получается и все. Заранее благодарю
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









А как пробовал?

Вот могу подсказку дать:
user posted image

А дальше google -> php html xpath
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bortmehannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 42955
На форуме: 6 месяцев, 20 дней
Карма:




Сделал вот так:

<?php
require_once 'simple_html_dom.php';
$ch = curl_init ('http://www.intuit.ru/verifydiplomas/100890767');

//curl_setopt ($ch , CURLOPT_URL , 'http://www.google.com.ua/images/srpr/logo3w.png';);

curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11");

curl_setopt ($ch , CURLOPT_HEADER , 0);

curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );

curl_setopt ($ch , CURLOPT_BINARYTRANSFER , 1);

$content = curl_exec($ch);

curl_close($ch);

preg_match('//*[@id="verifydiplomas-by-id-form"]/div/div[1]/div[1]/div/div/img', $content, $result);

header("Content-type: image/png");

echo $result;
?>

Но теперь пустоту выдает
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Немного не так.
У меня так работает:
function parseImageSrc($url) {
$src = '';

$doc = new DOMDocument();
@$doc->loadHTML(file_get_contents($url));

$xpath = new DOMXpath($doc);
$res = $xpath->query('//*[@id="verifydiplomas-by-id-form"]/div/div[1]/div[1]/div/div/img');
foreach ($res as $node) {
foreach ($node->attributes as $attr) {
if ($attr->name == 'src') {
$src = $attr->value;
break;
}
}

break;
}

if ($src != '') $src = 'http://www.intuit.ru' . $src;
return $src;
}


echo parseImageSrc('http://www.intuit.ru/verifydiplomas/100890767');
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bortmehannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 42955
На форуме: 6 месяцев, 20 дней
Карма:




Такого результата я добивался, но мне необходимо вывести именно изображение, не ссылку. Картинку на моем ресурсе проще говоря
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 20 дней
Карма: 7




bortmehannik
Если тебе нужно именно эту картинку, то вот так
<?php
$url = 'http://www.intuit.ru/verifydiplomas/100890767';
$ch = curl_init($url);

curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_setopt( $ch, CURLOPT_NOBODY, 0 );
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$content = curl_exec($ch);
curl_close ( $ch );

$start = '<div class="tab-body">';
$finish = '</div>';

//Вырезаем нужный блок
$position = strpos($content, $start);
$content = substr($content, $position);
$position = strpos($content, $finish);

//Вырезаем код
$content = substr($content, 0, $position);

//Убираем ненужные теги
$content = str_replace('<div class="tab-body">', '', $content);
$content = str_replace('<div class="diploma-img">', '', $content);

//Меняем ссылку в картинке
$content = str_replace('/sites', 'http://www.intuit.ru/sites', $content);

echo $content;


И будет тебе именно эта картинка с сертификатом
_
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bortmehannik  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 42955
На форуме: 6 месяцев, 20 дней
Карма:




Да спасибо)
Еще пришел к такому варианту, что функцию которая вытягивает адрес изображения можно вставлять в тег <img src="название функции()">
Вдруг кому пригодится)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 20 дней
Карма: 7




Цитата
Да спасибо)
Еще пришел к такому варианту, что функцию которая вытягивает адрес изображения можно вставлять в тег <img src="название функции()">
Вдруг кому пригодится)

Ну можно и так

Лучше не дергать постоянно чужой сайт, это не только я тебе скажу.
Я тоже как то делал парсинг, но курс валют и мне сказали что так делать нельзя,
то есть постоянно дергать чужой сайт. И я сделал так, раз в сутки скрипт парсит
один сайт и обновляет данные в бд, а уже на свой сайт я вывожу данные из бд
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса