✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Практический пример: используйте PHPQuery для сканирования 3000 изображений из Tumblr

33

На Tumblr есть несколько красивых изображений. Мы можем использовать API-интерфейсы Tumblr для поиска и загрузки изображений, однако для этого обычно требуется регистрация и ключи API. Другой способ — просканировать веб-страницы HTML и проанализировать DOM (объектную модель документа), что позволяет нам получать URL-адреса изображений и их описания.

Существует удобная библиотека, которая называется PHPQuery. Это позволяет нам писать PHP в стиле JQuery так же, как мы пишем JQuery, используя селекторы CSS. Это делает PHP мощным инструментом для анализа DOM любых HTML-страниц.

phpquery

Ниже приведен псевдокод, иллюстрирующий, как анализировать HTML — страницы и захватывать изображения.

С PHPQuery становится намного проще анализировать DOM! Нажмите, чтобы твитнуть

require('phpQuery.php');
require('app.php');
 
$ip = get_ip_address();
 
function grab($url, $lvl = 5) {
  global $ip;
  if ($lvl < = 0) {
    return;
  }
  $doc = phpQuery::newDocumentFile($url);
  foreach(pq('div.TumbPostPane') as $p) {
      $img = pq($p)->find('img.PhotoPostMainPhoto')->attr('src');
      $desc = htmlspecialchars(trim(pq($p)->find('div.MetaPanel')->html()));
      $url = pq($p)->find('a')->attr('href');
      $err = '';
      if (UploadPic($img, $desc, $err, $ip)) { // find pictures and save locally
         echo "OK = $err n";
      } else {
         echo str_replace("<br />", "n", "Error = $err n");
      }     
      grab($url, $lvl - 1); // recursive download
  }
}
 
grab("<a class="vglnk" target="_blank" href="https://uploadbeta.com" rel="nofollow"><span>https</span><span>://</span><span>uploadbeta</span><span>.</span><span>com</span></a>", 1); 

С небольшими изменениями вы можете позволить сценарию сканировать несколько тысяч изображений за несколько минут. Все изображения сохраняются в локальные базы данных на сервере VPS. Фотографии можно увидеть на сайте: uploadbeta.com

Лучше установить временной интервал между сканированием страниц, иначе IP-адрес может быть заблокирован.

Практический пример: используйте PHPQuery для сканирования 3000 изображений из Tumblr

Сканирование изображений

PS, веб-сайт Image Upload поддерживает несколько API для различных целей в соответствии с политикой добросовестного использования: https://uploadbeta.com/picture-gallery/faq.php#api .

Источник записи: helloacm.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее