На Tumblr є кілька гарних зображень. Ми можемо використовувати Tumblr API для пошуку та завантаження зображень, однак зазвичай для цього потрібні ключі реєстрації та 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-адреса може бути заблокована.
Сканування зображень
PS, веб-сайт для завантаження зображень підтримує кілька API для різних цілей, що підпадають під дію політики добросовісного використання: https://uploadbeta.com/picture-gallery/faq.php#api
