Ответы пользователя по тегу Веб-разработка
  • Как узнать что за объект на сайте под курсором на Python?

    valerium
    @valerium
    Изобретая велосипед
    Вам нужен JavaScript, чистый или библиотека вроде jQuery.

    С его помощью вешаете на каждый элемент в DOM событие onhover, и далее в функции-обработчике делаете то, что хотите, например, шлёте отчёт на сервер, или показываете XPath в окошке. Только не забудьте, что у некоторых элементов может уже быть свой обработчик onhover, его надо не забывать запускать из своего обработчика, чтобы ничего не сломать.

    С Python, наверняка, тоже можно каких-нибудь костылей нагородить (с помощью того же Selenium), но это будет кромешный мрак, не советую связываться.
    Ответ написан
    Комментировать
  • Как составить post запрос в python?

    valerium
    @valerium
    Изобретая велосипед
    Чтобы сделать POST запрос, используйте функцию requests.post().
    response = requests.post('http://example.com/', data={'key': 'value'})

    Через аргумент data передаёте словарь с переменными, если они нужны. В переменной response оказывается объект ответ, у которого есть атрибут cookies, который содержит словарь с куками. Передать эти куки в следующем запросе можно с помощью параметра (вот ведь неожиданно!) cookies.
    next_response = requests.post('http://example.com/', cookies=response.cookies)


    Вообще модуль request невероятно хорош, никогда не видел настолько интуитивного и удобного способа работы с HTTP. Чего только один метод .json() стоит!
    Ответ написан
    8 комментариев
  • Есть ли сайт где определены все технологии по деревьям?

    valerium
    @valerium
    Изобретая велосипед
    Общероссийский классификатор профессий рабочих, должностей служащих и тарифных разрядов. Там нет технологий и стэков, но от него можно плясать.
    Ответ написан
    1 комментарий
  • Curl не может подключится к серверу как исправить?

    valerium
    @valerium
    Изобретая велосипед
    Can't connect to host — не могу подключиться к хосту. На хосте не запущен сервер, запущен не на том порту, подключение блокируется файрволом, неправильно указан адрес (если обращение идёт по IP), или хост банально выключен.

    Проблемы с DNS проявляются как can't resolve host name.
    Ответ написан
    Комментировать
  • Как открыть localhost на Win10, которая в VirtualBox?

    valerium
    @valerium
    Изобретая велосипед
    Открыть доступ из виртуальной машины к localhost машины-хоста невозможно никак. Но есть два обходных способа.

    1. Попробуйте заставить Browsersync слушать не localhost, а другой IP, который имеет Ваш компьютер (скорее всего, что-то вроде 192.168.1.XX, если Вы используете роутер) или все доступные IP (обычно это задаётся адресом 0.0.0.0). Тогда из виртуалки Вы сможете легко обращаться не по localhost, а по другому IP. Не исключено, что Browsersync и так по умолчанию слушает все доступные адреса, это можно прооверить постучавшись из браузера на хост-машине открыть страничку вроде 192.168.1.XX:3008/. Если прокатит с хост-машины, то прокатит и из виртаулки.

    2. Если первый вариант не прокатит, можно настроить на хост машине проброс портов с «внешнего» адреса на 127.0.0.1 с помощью iptables. Инструкции легко гуглятся, если будут проблему — постараюсь помочь.

    И, кстати, проброс портов так, как изображёно на скриншоте — это не то, что Вам нужно, потому что это проброс с порта на машине-хосте на порт виртуальной машины. Вам же, судя по всему, нужно наоборот.
    Ответ написан
    1 комментарий
  • Как настроить "бесконечные" поддомены?

    valerium
    @valerium
    Изобретая велосипед
    Используйте
    ServerAlias *.siteX.ru
    в разделе VirtualHost каждого домена.
    Ответ написан
  • Какой инструмент использовать для личной БД с блогом?

    valerium
    @valerium
    Изобретая велосипед
    Как велолюбитель могу предложить взять какой-нибудь из популярных вэб-фреймворков и сообразить что-нибудь самому. Сначала накатать блог, а потом к нему уже прикручивать нужные хотелки.

    Минусы очевидны — потребуется время и умение прогать.

    Плюсы не менее очевидны — почти абсолютная свобода действий. Можно соорудить именно такую базу данных с такими таблицами, какие нужны Вам, повесить на эти таблицы свои триггеры и обработчики и т. п. Например, считать финансы. С помощью CMS это довольно проблематично организовать. Ну и, безусловно, это будет неплохим способом изучить язык, фреймворк, базы данных.
    Ответ написан
  • Занесение данных из файла .xml в MySQL?

    valerium
    @valerium
    Изобретая велосипед
    Учитывая, что именно по статусу Вы будете искать очень часто, то имеет смысл их вынести в отдельную таблицу, чтобы поиск по основной таблице был по целому числу.

    Да, поиск дубликатов будет занимать немного лишнего времени, но если есть индекс, заминка будет незаметной.
    Ответ написан
  • Как отправить файл POST из скрипта?

    valerium
    @valerium
    Изобретая велосипед
    Судя по всему, принимающий скрипт находится вне вашей власти или вам как минимум неьзя его править. Я угадал? :-)

    В документации PHP написано, что он "способен получать загруженные файлы из любого браузера, совместимого со стандартом RFC-1867". В стандарте RFC-1867, в свою очередь, введён тип кодирования "multipart/form-data". Следовательно, чтобы PHP понял, что ему передают не просто переменную в POST, а файл (и пометил его в массив $_FILES), нужно, чтобы клиент передал ему соответствующий тип. Так что можно либо внимательно изучить документ и организовать передачу самому, используя сокеты, либо внимательно изучить документацию в PHP к cURL.

    В PHP 5.5 изменились правила использования cURL, таким образом, чтобы передать файл, нужно использовать объект CURLFile (кстати, в русской версии документации этой страницы нет). В коде это будет выглядеть как-то так (не проверял).

    $ch = curl_init();
    $curlfile = new CURLFile('/home/user/we-are-champions.mp3', 'audio/mp3', 'best-song.mp3')
    curl_setopt($ch, CURLOPT_POSTFIELDS, $curlfile);
    $content = curl_exec($ch);
    curl_close ($ch);


    Ну, или просто откатитесь на более старую версию PHP (до 5.5) и используйте тот подход, который описан в ответе выше. Но это неразумно, на мой взгляд.
    Ответ написан
    1 комментарий
  • Как генерировать архив на хостинге, по запросу пользователя?

    valerium
    @valerium
    Изобретая велосипед
    Сжимать прямо в PHP приемлемо только если файлов немного и они небольшого размера. Большие файлы не успеют сжаться за стандартные 30 секунд, которые Apache отводит на исполнение скриптов. Так что если хотите масштабируемое решение, посмотрите в сторону сжатия в фоне.

    Простейший способ - очередь сжатия. После того как пользователь ставит галочки и жмёт "Скачать", скрипт записывает список сжимаемых файлов в, допустим, базу данных. Сидящий в фоне скрипт раз в минуту (условно) проверяет появление новых файлов в списке. Как только находит, начинает работу. При этом страница, которую видит клиент, раз в 10-15 секунд по аяксу запрашивает статус сжатия. Когда оно закончится, пользователю отдаётся ссылка на скачивание.

    Так же грамотным решением было бы использование специализированного менеджера очередей, вроде RabbitMQ.

    P. S. Позиционировать себя как разработчика сайтов и не знать про стандартный модуль PHP - это интересно :-)
    Ответ написан
    Комментировать