Задать вопрос
  • Как сделать обертку?

    yanis_kondakov
    @yanis_kondakov
    Универсальное решение

    codepen

    const boxes = document.querySelectorAll('.box');
    
    const isNested = (f, t, c) => c + 1 >= f && c + 1 <= t;
    
    const insertAfter = (elem, refElem) => refElem.parentNode.insertBefore(elem, refElem.nextSibling);
    
    const transferBoxesToWrapper = (fromIndex, toIndex, wrapper) => {
      boxes.forEach((box, i) => isNested(fromIndex, toIndex, i) && wrapper.appendChild(box));
    }
    
    const createWrapper = (fromIndex, toIndex) => {
      let wrapper = document.createElement('div');
      
      wrapper.classList.add('wrapper');
      insertAfter(wrapper, boxes[fromIndex - 1]);
      transferBoxesToWrapper(fromIndex, toIndex, wrapper);
    }
    
    createWrapper(3, 5);
    Ответ написан
    Комментировать
  • Как сделать обертку?

    @slanec
    Вы можете получить коллекцию, обратившись с помощью класса. перебрать их в цикле и нужных местах использовать parentElem.insertBefore(newElem, target)
    Ответ написан
    Комментировать
  • Как сделать обертку?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Где элементы находятся (родительский элемент), кого из них (минимальный и максимальный индексы в коллекции вложенных элементов родителя) и куда надо переместить:

    const parent = document.querySelector('.box').parentNode;
    
    const iMin = 2;
    const iMax = 5;
    
    const wrapper = document.createElement('div');
    wrapper.classList.add('wrapper');

    Получаем элементы, перемещаем:

    if (parent.children[iMin]) {
      const elems = Array.prototype.slice.call(parent.children, iMin, iMax);
      elems[0].before(wrapper);
      wrapper.append(...elems);
    }
    
    // или
    
    const elems = parent.querySelectorAll(`:nth-child(n + ${-~iMin}):not(:nth-child(n + ${-~iMax}))`);
    if (elems.length) {
      parent.insertBefore(wrapper, elems[0]);
      elems.forEach(n => wrapper.appendChild(n));
    }
    
    // или
    
    if (parent.children.length > iMin) {
      parent.children[iMin].insertAdjacentElement('beforebegin', wrapper);
      for (let i = iMax - iMin, n = null; i-- && (n = wrapper.nextElementSibling);) {
        wrapper.insertAdjacentElement('beforeend', n);
      }
    }
    Ответ написан
    Комментировать
  • Как удалить элементы, не имеющие вложенных элементов?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    document.querySelectorAll('div.color').forEach( el => {
      if (el.children.length === 0) el.parentNode.removeChild(el);
    });


    Ответ написан
    6 комментариев
  • Как из списка удалить значение?

    a = 'test'
    b = 'test stroka'
    
    if a in b:
        b = "".join(b.split(a))


    P. S. Не совсем понятно что вы хотите сделать. Если что-то не так, то поясните, что хотите сделать.

    UPD1: Если ещё нужно заменить b в списке, тогда нужно примерно так:
    a = 'test'
    b = 'test stroka'
    l = [a, b]
    
    if a in b:
        b = "".join(b.split(a))
        l[1] = b
    Ответ написан
    2 комментария
  • WordPress ckecked как вывести?

    id="myplugin_new_field-"' . $post_ID_optoins_post . ' name

    перенесите двойную кавычку за $post_ID_optoins_post, иначе у Вас id неверный получается
    вот так
    id="myplugin_new_field-' . $post_ID_optoins_post . '" name
    Ответ написан
    2 комментария
  • Чем лучше и быстрее парсить Amazon на Python?

    polarlord
    @polarlord
    Занимаюсь парсингом Амазона в промышленных масштабах (сотни тысяч страниц в день). Самая большая проблема не в библиотеках, а в том, что Амазон очень умело выявляет попытки парсинга и при этом постоянно совершенствует собственную технику обнаружения таких попыток. Поэтому самый действенный способ - это иметь в своем распоряжении приличный набор качественных прокси (с теми у которых отличается только последняя секция и номер порта долго работать не получится - попадут в черный список на срок от часа до суток, в зависимости от того как интенсивно будете через них слать запросы).
    По поводу библиотек - выбирайте их в соответствии с вашими потребностями, отталкиваясь от объема запросов которые нужно слать. Самые простые - это всякие requests, urllib, pycurl, multycurl. Ими целесообразно пользоваться в однопоточном и синхронном типе парсеров. Но практически всю работу будете писать руками. Если хотите чуть больше мощности и удобства - посмотрите в сторону Grab. Он может многое, в т.ч. удобно работает с прокси и т.д. Если нужен большой объем и скорость - используйте Scrapy. Крутая штука, но со своими правилами. Однако если нужно будет затачивать под себя - в сети много информации по нему.
    С API Амазон можно и нужно работать. Но есть несколько проблем:
    1. Существует лимит на кол-во обращений(тут подробнее, но можно в одном запросе слать до 10-ти ASIN).
    2. Самое неприятное, что по некоторым товарам (при использовании lookup-методов) инфа не приходит либо отличается от оригинала(сайта). Т.е. не нужно полагаться на то, что АПИ будет возвращать информацию полностью идентичную с их сайтом.
    3. Ограничение на кол-во товаров по которым возвращается инфа (при использовании search-методов). 100 товаров. Дальше - только парсинг. Такое ограничение не только у Амазон, у Ebay так же. Без этого - кол-во всяких дропшиперов и прочих посредников просто зашкалило бы.
    Несколько нюансов:
    -Не пытайтесь выдавать себя за Google Bot, ничего хорошего не выйдет, только потратите время.
    -Использование всяких браузерных технологий, наподобие PhantomJS или даже Selenium, толку не принесет. Там к проблеме IP еще добавятся куки и т.п. По скорости будет медленно, для больших объемов не подойдет.
    -Главное, как уже понятно, обойти систему которая определяет ботов и краулеры. Поэтому импровизируйте, экспериментируйте, думайте головой и ищите свои решения. На том конце сидят тоже люди ) В сети масса советов по этому поводу (можете начать с последнего раздела здесь).
    Ответ написан
    5 комментариев
  • Как получить url страницы?

    tumbler
    @tumbler Куратор тега Python
    бекенд-разработчик на python
    Судя по наличию слова "спарсить", всё-таки имеется ввиду запрос URL из python для последующего разбора. Как получить URL запроса, который только что запросил? Думаю, сохранить в переменную перед запросом и прочитать из переменной сразу после. Если используется scrapy или другие библиотеки для обхода интернета - тогда подробности в студию.

    Если же действительно вопрос состоит в получении URL из адресной строки браузера, то я бы в первую очередь смотрел на browser api (к которому наверняка можно достучаться аналогично тому, как это делает Selenium) или на расширения (которые не на python, а на js) - с последующей отправкой этого url на сервер.
    Ответ написан
    5 комментариев
  • Python - Как выбрать нужную строку?

    igorzakhar
    @igorzakhar
    >>> body = """
    ... <span class="packaging-info">
    ...     Qty: 1+
    ...     <span class="packing-price">$0.395</span>
    ... </span>
    ... """
    >>> soup = BeautifulSoup(body, 'lxml')
    >>> elem = soup.find('span', class_='packaging-info')
    >>> elem.next_element.strip()
    'Qty: 1+'
    Ответ написан
    Комментировать
  • Как проверить текущий месяц?

    profesor08
    @profesor08 Куратор тега PHP
    php.net/manual/ru/function.date.php
    Тут вся информация как пользоваться. Пара примеров:
    date("m"); // номер месяца от 01 до 12
    date("F"); // номер месяца от January до December
    date("d:m:Y"); // 06:10:2018
    Ответ написан
    Комментировать
  • Как проверить текущий месяц?

    @nozzy
    Symfony, Laravel, SQL, Python, Telegram
    $your_month = 10;
    $current_month = date('n');
    
    if($your_month == $current_month)
    {
    ....
    }
    Ответ написан
    Комментировать
  • Как сравнить csv-файлы?

    longclaps
    @longclaps
    from csv import reader
    
    d = dict(reader(open('Первый.csv')))
    for id, src in (reader(open('Второй.csv'))):
        if id in d:
            print(id, d[id], src)
    Ответ написан
    2 комментария
  • Как вывести структурированно дочерние категории?

    Посмотри сюдаТам есть ссылка на страницу которая также организована. А в комментариях описание метода. Только этот метод будет работать верно при условии, что у Вас на странице нет пагинации.
    Ответ написан
    Комментировать
  • Адаптивная верстка - как минимизировать/ужать страницу?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Лучше конечно делать по-нормальному, но временно Вас может выручить transform: scale(0.5)
    codepen.io/iiil/pen/iLoqm
    Ответ написан
    5 комментариев