✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Fallstudie: Verwenden Sie PHPQuery, um 3000 Bilder von Tumblr zu crawlen

20

Auf Tumblr gibt es einige schöne Bilder. Wir können Tumblr-APIs verwenden, um Bilder zu suchen und herunterzuladen, dies erfordert jedoch normalerweise die Registrierung und die API-Schlüssel. Eine andere Möglichkeit besteht darin, die HTML-Webseiten zu crawlen und das DOM (Document Object Model) zu analysieren, wodurch wir die Bild-URLs und ihre Beschreibungen abrufen können.

Es gibt eine praktische Bibliothek namens PHPQuery. Es ermöglicht uns, PHP im JQuery-Stil so zu schreiben, wie wir JQuery schreiben, indem wir CSS-Selektoren verwenden. Es macht PHP leistungsfähig bei der Analyse des DOM beliebiger HTML-Seiten.

phpabfrage

Das Folgende ist ein Psudo-Code, der veranschaulicht, wie die HTML – Seiten analysiert und die Bilder abgerufen werden.

Mit PHPQuery wird es so viel einfacher, das DOM zu analysieren! Klicken Sie hier, um zu twittern

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); 

Mit wenigen Modifikationen können Sie das Skript innerhalb weniger Minuten mehrere tausend Bilder crawlen lassen. Alle Bilder werden in lokalen Datenbanken auf dem VPS-Server gespeichert. Die Bilder sind zu sehen unter: uploadbeta.com

Es ist besser, ein Zeitintervall zwischen dem Seiten-Crawling festzulegen, da sonst die IP-Adresse blockiert werden kann.

Fallstudie: Verwenden Sie PHPQuery, um 3000 Bilder von Tumblr zu crawlen

Bildkriechen

PS, die Image-Upload-Website unterstützt einige APIs für verschiedene Zwecke, die der Fair-Use-Richtlinie unterliegen: https://uploadbeta.com/picture-gallery/faq.php#api

Aufnahmequelle: helloacm.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen