|
Болтовня Разговоры на любые темы (думайте, о чем пишите) |
20.12.2015, 03:43
|
#1
|
Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Как загрузить все изображения с веб-сайта?
Привет, булчане!
У меня есть задача:
Загрузить изображения товаров с этого веб-сайта: http://www.onlinetrade.ru/catalogue/
Всего картинок должно быть примерно 100 тысяч.
Изображения хранятся здесь: http://www.onlinetrade.ru/img/items/s/{IMAGE_NAME}.jpg
(например: http://www.onlinetrade.ru/img/items/...her niy_1.jpg)
Но к этой директории нет доступа: http://www.onlinetrade.ru/img/items/s
Я пробовал Teleport Pro, который плохо справился с задачей.
Потом перешел на Offline Explorer, он отлично выполняет задачу. Но почему-то загружает только около 5 тысяч картинок.
Что посоветуете?
|
(Offline)
|
|
20.12.2015, 04:04
|
#2
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сам скрипт напиши, там же ничего сложного. Получить список всех разделов (рекурсивно, если там дерево), далее по каждому разделу все товары и по картинке к каждому товару.
__________________
|
(Offline)
|
|
20.12.2015, 04:09
|
#3
|
Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сообщение от h1dd3n
Сам скрипт напиши, там же ничего сложного. Получить список всех разделов (рекурсивно, если там дерево), далее по каждому разделу все товары и по картинке к каждому товару.
|
Вообще не представляю с чего начать.
|
(Offline)
|
|
20.12.2015, 05:08
|
#4
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
А какой язык программирования тебе ближе всего ?
__________________
|
(Offline)
|
|
20.12.2015, 05:57
|
#5
|
Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сообщение от h1dd3n
А какой язык программирования тебе ближе всего ?
|
Javascript, Php
|
(Offline)
|
|
20.12.2015, 06:13
|
#6
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
ну тогда возьми nodejs скачай страницу, распарси (наверняка библиотека/модуль для этого уже написаны), далее составь список всех разделов, для каждого раздела получи список товаров (также запрашивая страницу и парся её), далее для каждого товара опять же запрашиваешь страницу находишь там элемент с картинкой, скачиваешь её, готово.
можно даже не nodejs а http://phantomjs.org/
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.12.2015, 06:27
|
#7
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сообщение от h1dd3n
nodejs
|
Чем джаваскрипт прямо в браузере не угодил?
Распарсить на браузере, составить список ссылок на картинки.
Далее скачать удобным способом (поюзать какой-нибудь менеджер загрузок)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.12.2015, 06:48
|
#8
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
я написал что можно вместо nodejs phantomjs взять. это тот же браузер (webkit)
ни разу в браузере ничего не парсил (я на C# пишу), но разве браузер не будет загружать вместе со страницей картинки и выполнять скрипты ? если отменить это поведение в js нельзя, то это будет ощутимо медленнее чем просто стянуть html и распарсить его, к тому же в nodejs есть место для оптимизаций - например грузить много страниц одновременно заходя через разные прокси или при загрузке картинки оптимизировать ее (конвертнуть в png и пройтись по ней pngquant/optipng) и т.д..
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.12.2015, 07:46
|
#9
|
Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Чего-то я посмотрел все это дело. Да, долго я буду вникать. PhantomJS вообще не смог поставить (так и не понял что за глобальные переменные там нужно редактировать).
Мне хотя бы что-то вроде этого сервиса нужно:
http://backlinks-checker.dimax.biz/t...r_kartinok.php
|
(Offline)
|
|
20.12.2015, 12:40
|
#10
|
Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
В общем, попробовал с помощью C# запарсить страницу и загрузить изображение. Все вроде бы грузится, да не все.
Что с Offline Explorer, что с самописными парсерами, почему-то, например, с этой страницы:
http://www.onlinetrade.ru/catalogue/ip_telefoni-c517/
(на которой 46 товаров, а следовательно 46 картинок)
Загружается только 5 картинок товара. Почему не загружаются остальные, вообще не понятно.
|
(Offline)
|
|
20.12.2015, 14:23
|
#11
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Ну у варианта с js прямо в браузере есть важное преимущество: Document Object Model строит сам браузер, "переваривая" все нештатные ситуации (верстальщик Вася не закрыл тег — приехали), которые при ручном парсинге придётся предусматривать.
Если грузить ссылки через Ajax, будет грузиться только сама страница, без прилинкованного контента.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
|
|
20.12.2015, 19:06
|
#12
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сообщение от ABTOMAT
Ну у варианта с js прямо в браузере есть важное преимущество: Document Object Model строит сам браузер, "переваривая" все нештатные ситуации (верстальщик Вася не закрыл тег — приехали), которые при ручном парсинге придётся предусматривать.
Если грузить ссылки через Ajax, будет грузиться только сама страница, без прилинкованного контента.
|
phantomjs делает тоже самое, я же написал что это фактически браузер.
к тому же парсер для C# htmlagilitypack учитывает такие ситуации, соответствующие модули для nodejs/других платформ тоже должны такое уметь
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.12.2015, 19:42
|
#13
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,358
Написано 2,472 полезных сообщений (для 6,854 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Сообщение от Program23
Javascript, Php
|
PhpQuery? (Если знаком с селекторами, jQuery и умеешь в curl)
<?php
error_reporting(E_ALL); ini_set('display_errors', 'On'); ini_set('display_startup_errors', 'On'); ini_set('error_reporting', '-1'); ini_set('log_errors', 'On');
include 'phpQuery-onefile.php';
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://boolean.name/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $html = curl_exec($ch); curl_close($ch);
$doc = phpQuery::newDocument($html); $stats = array();
foreach ($doc['table tr td div a strong'] as $theme) { echo pq($theme)->html() . '<br />'; }
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.12.2015, 05:43
|
#14
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Короче вариантов решений задачи в топике накидали уже вагон
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.12.2015, 07:16
|
#15
|
Бывалый
Регистрация: 26.04.2009
Адрес: Россия, Уфа
Сообщений: 680
Написано 182 полезных сообщений (для 406 пользователей)
|
Ответ: Как загрузить все изображения с веб-сайта?
Я решил на javascript в браузере писать. Спасибо за подсказки. Пойду копать документацию.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:31.
|