Ci sono delle belle immagini su Tumblr. Possiamo utilizzare le API di Tumblr per cercare e scaricare immagini, tuttavia ciò di solito richiede la registrazione e le chiavi API. Un altro modo è eseguire la scansione delle pagine Web HTML e analizzare il DOM (Document Object Model), che ci consente di recuperare gli URL delle immagini e le loro descrizioni.
C’è una comoda libreria che si chiama PHPQuery. Ci consente di scrivere PHP in stile JQuery nel modo in cui scriviamo JQuery, utilizzando i selettori CSS. Rende il PHP potente nell’analisi del DOM di qualsiasi pagina HTML.
phpquery
Quello che segue è uno pseudo-codice che illustra come analizzare le pagine HTML e catturare le immagini.
Con PHPQuery, diventa molto più semplice analizzare il DOM! Fare clic per twittare
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);
Con poche modifiche, puoi consentire allo script di eseguire la scansione di diverse migliaia di immagini in pochi minuti. Tutte le immagini vengono salvate nei database locali nel server VPS. Le immagini possono essere viste su: uploadbeta.com
È meglio impostare un intervallo di tempo tra la scansione della pagina, altrimenti l’ indirizzo IP potrebbe essere bloccato.
Scansione di immagini
PS, il sito Web di caricamento immagini supporta alcune API per vari scopi soggetti alla politica di utilizzo corretto: https://uploadbeta.com/picture-gallery/faq.php#api
