Парсинг в MSQL

Тема в разделе "Решение различных задач по парсингу", создана пользователем aleks69, 23 дек 2011.

Статус темы:
Закрыта.
  1. aleks69

    aleks69 New Member Пользователи

    Регистрация:
    23 дек 2011
    Сообщения:
    5
    подскажите как изображения закинуть в базу?

    Делаю так

    original_img=<NIMG><CD_CYCLE_GRAN_1!></NIMG>

    То в базе ссылка вместе с <NIMG>


    А если так
    original_img=<CD_CYCLE_GRAN_1!>

    то просто ссылка с http:// хотя стоит галочка без адресов



    Еще такой вопрос у меня две границы парсинга в них условия парсинга изображений на странице бывает как первое условие так и второе нужно сделать так


    если <CD_CYCLE_GRAN_1!> нет ,то <CD_CYCLE_GRAN_2!>


    Еще хотелось бы сделать сразу в программе в шаблоне вывода генератор чисел <CD_GEN_1!> а в настройка указать генерить по порядку из диапазона или случайно
     
    Последнее редактирование: 23 дек 2011
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Для загрузки изображений на сервер через PHP-скрипт и последующим постингом в базу, лучше использовать обычные границы парсинга, а не повторяющиеся (так проще).

    Вот живой пример постинга контента в базу с параллельной загрузкой картинок на FTP (и вставкой их в базу):
    HTML:
    <PHP_SCRIPT_2=http://site.ru/insert.php>
    image=<PHP_SCRIPT=http://site.ru/components/com_virtuemart/shop_image/dwnldimgs.php>img_url=<CD_GRAN_3!>
    img_folder=product</PHP_SCRIPT>
    image2=<PHP_SCRIPT=http://site.ru/components/com_virtuemart/shop_image/dwnldimgs.php>img_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'thumbnail': '"><STARTCOUNT="1"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    img_folder=product</PHP_SCRIPT>
    image3=<PHP_SCRIPT=http://site.ru/components/com_virtuemart/shop_image/dwnldimgs.php>img_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'thumbnail': '"><STARTCOUNT="2"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    img_folder=product</PHP_SCRIPT>
    image2_BIG_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'normal': '"><STARTCOUNT="1"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    image3_BIG_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'normal': '"><STARTCOUNT="2"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    image2id=[INT_ID]1
    imgext=jpg
    sku=<CD_GRAN_1!>[INT_ID]
    name=<CD_GRAN_2!>
    id=[INT_ID]
    sdesc=<CD_GRAN_5!><CD_GRAN_6!>
    desc=<CD_GRAN_5!><CD_GRAN_6!>
    cat=<CD_GRAN_10!>
    brand=<CD_GRAN_17!>
    brandid=<STRTOINTID><CD_GRAN_17!></STRTOINTID>
    url=<CD_DOCURL!>
    check=<CD_GRAN_19!>
    price=<TOPRICE*100><CD_GRAN_9!></TOPRICE>
    </PHP_SCRIPT_2>
    Пояснения:
    Сначала срабатывает макрос PHP_SCRIPT (он грузит картинку на фтп по ее абсолютному url-адресу из интернета), на месте макроса PHP_SCRIPT остается ссылка на изображение (которое загружено на сервер)(эта ссылка будет отправлена в базу MySQL с помощью PHP_SCRIPT_2, который будет выполнен после PHP_SCRIPT).
    Затем макрос PHP_SCRIPT_2 постит данные в MySQL Базу. Адрес картинки отправится в параметре image=

    Ссылки недоступны для гостей - тут можно скачать скрипт загрузки изображений на FTP.
     
  3. aleks69

    aleks69 New Member Пользователи

    Регистрация:
    23 дек 2011
    Сообщения:
    5
    Спасибо! а по остальным вопросам?
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    По поводу генерации чисел:
    Используйте макрос шаблона вывода [INT_ID] - вставка целого числа, которое увеличивается с каждым новым документом.
    [COUNT] - если вставить его в документе несколько раз, то при каждой вставке оно будет увеличиваться (сбрасывается с каждым новым документом).
    Используйте эти макросы в связке или по отдельности, в зависимости от ситуации.
     
  5. aleks69

    aleks69 New Member Пользователи

    Регистрация:
    23 дек 2011
    Сообщения:
    5
    Понятно,спасибо за оперативность,что насчет

    Еще такой вопрос у меня две границы парсинга в них условия парсинга изображений на странице бывает как первое условие так и второе нужно сделать так


    если <CD_CYCLE_GRAN_1!> нет ,то <CD_CYCLE_GRAN_2!>
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Используйте обычные границы парсинга, а не повторяющиеся (задайте для каждой картинки).
    По условию:
    На панели инструментов программы есть кнопка "дополнительные настройки границ парсинга". Нажмите ее и откроется окно со вкладками для каждой границы парсинга. В соответствующей вкладке найдите "если граница парсинга окажется пустой..." и в это поле добавьте, например <CD_GRAN_2!>.

    В этом случае, если граница парсинга 1 (<CD_GRAN_1!>, у которой в настройках прописали <CD_GRAN_2!>) окажется пустой, то выведется <CD_GRAN_2!>.

    Надеюсь, изложил понятно, если будут еще вопросы - пишите!
     
  7. sanek3y

    sanek3y New Member Пользователи

    Регистрация:
    28 авг 2011
    Сообщения:
    8
    Не выводится или нужно прописать что-то в шаблоне вывода?
     
  8. Valiks

    Valiks New Member Супер Модератор

    Регистрация:
    18 янв 2012
    Сообщения:
    554
    Адрес:
    Всё время в скэйпе
    В шаблоне вывода ничего не надо дополнительно прописывать.
    Шаблон вывода нужно правильно создать. А вот там же где кнопка шаблона, чуть выше, есть "Ссылки недоступны для гостей" (смотрите схемы). В вашем случае откройте вкладку с границей <CD_GRAN_1!>, там есть поле "Если граница парсинга будет пустой, вместо неё будет выводится следующий текст",- надо вставить <CD_GRAN_2!>. Чуть ниже надо поставить галочку там, где пишет "Обязательна". Тогда должно сработать.
     
  9. sanek3y

    sanek3y New Member Пользователи

    Регистрация:
    28 авг 2011
    Сообщения:
    8
    спасибо, разобрался! Проблема была в порядке обработки задач в проге.
    Оказывается стояла галка "htm to txt" в главное вкладке контент (скрипт видимо переводится в текст и он не работает), снял ее и поставил "htm to txt" непосредственно в границах парсинга.
     
    Последнее редактирование: 24 мар 2012
  10. Valiks

    Valiks New Member Супер Модератор

    Регистрация:
    18 янв 2012
    Сообщения:
    554
    Адрес:
    Всё время в скэйпе
    Такое бывает, в случаях если в одной из границ преждевременно удаляется лишнее форматирование.
     
  11. sanek

    sanek New Member Пользователи

    Регистрация:
    14 фев 2013
    Сообщения:
    6
    как сделать чтобы при отсутствии загружаемой картинки в шаблон возвращасась ‘err’?
    скрипт пытался подправить но нечего невышло

    <?php
    $imgpath = $_POST['img_url']; // - ���������� ������ �� �������� ����������� (������� �� POST-��������� ������� PHP_SCRIPT)
    $dirname = $_POST['img_folder']; // - ��� ����� ����������� (������� �� POST - ���������, ��������� ��� ����� �� �����)
    $imgid = $_POST['imgid']; // - ���� �����, ����� � ����� ������ �������� ������������ ���� id, �� ����������� POST-�������� imgid

    $ch = curl_init($imgpath);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

    if(curl_error($ch)===false)
    {
    $fn = 'err';
    }
    else
    {
    $fn = ($imgid.substr($imgpath,strrpos($imgpath,'/')+1,strlen($imgpath)));
    $fn = str_replace('?', '_', $fn);
    $fn = str_replace('=', '_', $fn);
    if (is_dir($dirname)==FALSE) mkdir($dirname);
    $fp = fopen($dirname.'/'.$fn, 'wb');
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    }

    curl_close($ch);
    fclose($fp);

    //echo($dirname.'/'.$fn); // - ������ ���� ��������, ����������� �� ������
    echo($fn); // - ������ ������ ��� ����� ��������, ����������� �� ������
    ?>
     
  12. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
Статус темы:
Закрыта.

Поделиться этой страницей