Ответы пользователя по тегу Веб-разработка
  • Данные о другом пользователе через instagram api?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    То есть не существует никакого официального способа получить ленту другого пользователя?

    Подозреваю, что да. И как вам уже подсказали вам необходимо спарсить ленту. Например, при помощи selenium. Или же как вариант изучить внутренний АПИ, выполнить запрос и спарсить json, в котором будут необходимые данные.
    Ответ написан
    Комментировать
  • Написать программу редактирующую страницу в wordpress?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Мне приходилось писать подобные приложения.
    Вам необходимо работать с Wordpress REST API.
    Есть Java клиент.
    Используйте эту либу:
    https://github.com/Afrozaar/wp-api-v2-client-java
    Также на ВП сайт установите этот плагин, чтобы можно было авторизовать сторонний клиент
    https://github.com/WP-API/Basic-Auth
    Если вам нужно редактировать метаданные на сайте ВП, то установите этот плагин на сайт
    https://github.com/Afrozaar/wp-api-v2-client-java-...
    Можете также глянуть на:
    https://github.com/Afrozaar/wp-api-v2-afrozaar-extras

    При необходимости вы можете использовать другой фреймворк:
    Apache Camel + Apache Camel WP Component
    https://camel.apache.org/
    https://camel.apache.org/components/3.4.x/wordpres...
    Ответ написан
    Комментировать
  • Как читать книги из браузера?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!
    Ну во-первых,
    вам нужно найти библиотеку или библиотеки на java или на другом языке, которая умеет конвертировать форматы книг в html. Скажу честно, тут могут понадобится различные инструменты, вплоть до OCR.
    Например, для pdf - https://www.e-iceblue.com/Tutorials/Java/Spire.PDF...
    Ищите различные либы для pdf, doc, docx, txt, fb2 и т.д. Гуглим

    Далее предположим, что есть некая регистрация на сайте и у каждого пользователя есть прогресс чтения книг. Дальше тут много аспектов, о которых вам нужно подумать. Например, сохранение прогресса сперва на клиентской стороне в localStorage, затем сохранение информации на серверной стороне.
    Ответ написан
  • Можно ли создать сайт одному на java?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!

    Можно ли создать сайт одному?

    Да, это называется fullstack. Мы проходите полный цикл разработки сайтв - frontend + backend.
    Отсюда вопрос - хотите ли вы написать полноценный фронт с применением js-фреймворка (vue, react и др.) или вы хотите написать MVC приложение с каким-нибудь шаблонизатором (thymeleaf, mustache, freemarker и др.).
    Конечно же знание JavaScript понадобится в обеих вариантах. В первом случае нужно владеть js более профессионально. Разбираться в таких вещах, как nodejs, npm, js-framework, возможно даже ts.

    Я хочу узнать могу ли я на java создать хотя бы часть сайта самостоятельно

    Backend (REST) вы можете написать на java. Frontend не получится. Если хотите фронт тоже на java писать, то можете глянуть на Vaadin. Хотя как по мне лучше изучить js || ts + vue || react.

    делать сайты как telegram, amazon или AliExpress можно только в больших командах

    Над такими проектами работают целые команды разработчиков, не говоря о том, что большинство этих проектов не являются монолитами и имеют микросервисную архитектуру.

    Может быть мне стоит изучить php или python и попытаться создать сайты с их помощью?

    Ну вам решать на чем писать backend. Если нужно что-то попроще, то я бы рекомендовал изучить python (Django или Flask). Он подходит для разработки ERP, также как и ruby (RoR), php (Yii2, Laravel, Symfony), ну и Java (Spring).

    Важно еще задуматься о разработке UX / UI дизайна и верстке макета. Вряд ли вы сами будете это делать. Ну или же можно приобрести готовые шаблоны на themeforest или на creative-tim и т.д.
    Ответ написан
    3 комментария
  • Можно ли написать бэкенд на Java а фронтенд на Swift для Apple?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Backend можно написать на чем угодно. Java тоже подойдет.

    Будет ли это работать на Apple ?

    Даже не сомневайтесь. Вообще все равно что крутится на фронте, будь то приложение на swift или react native или js фреймворк для веб-приложения и т.д.
    Ответ написан
    Комментировать
  • Как реализовать сайт наподобие google form?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!
    1) есть сервер на ubuntu; 2) на него установил lamp

    Можно более простым способом обойтись и установить VestaCP
    https://vestacp.com/
    Но если нравится все ставить руками, то lamp в самый раз.
    Что касается выбора CMS, CMF или фреймворка, то тут зависит от вашего бюджета или навыков.
    С учетом того, что в ТЗ не было озвучено ничего специфичного, то CMS WordPress подойдет.
    Если будете делать на ВП, то вот, примерная инструкция:
    - установить плагин Advanced Custom Fields. Желательно, даже Pro
    - Создать кастомные поля (форму) куда пользователи смогут заносить свои данные
    Читаем как создать front-end форму
    - Создайте кастомный тип записи Читаем про register_post_type
    - А далее при сабмите формы из фронта создаете новый кастомный пост. Можно не публиковать пост сразу, а создавать его со статусом draft и отправлять админу уведомление о наличии нового поста (анкеты). Далее админ проверяет и публикует.
    - Ну а дальше остается это все лишь красиво вывести на сайте.
    Ну а если хотите написать с нуля, то можно и на фреймворках, типа Yii2, Laravel и др.

    Скажу честно, сама идея меня несколько напрягает. Смысл людям вбивать свои личные данные (ФИО, где и когда родился, инн, снилс, и копии каких либо документов), чтобы они были доступны другим людям? К тому же, вам надо обеспечивать безопасность этих данных иначе взломать ВП и украсть данные не такая уж и сложная задача. Особенно, когда устанавливают кучу обнуленных плагинов и т.д. Ну и чтобы не было проблем с юридической точки зрения, то надо бы тогда создать страницу "Политика конфиденцильности" и подробно написать, какие данные вы собираете у пользователей, как их храните, используете и есть ли доступ у третьих лиц к этим данным.

    Я бы подобное сделал бы на фреймворках, чтобы иметь возможность контролировать хранимые данные. Возможно, что данные в БД хранить в зашифрованном виде и дешифровать их при обращении к БД. Дополнительная мера безопасности так сказать...
    Ответ написан
    2 комментария
  • Веб-приложение на Java без знаний фронтенда?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Прекрасно понимаю вас, так как сам когда-то был в подобной ситуации.
    Создавать более или менее нормальные сайты не зная основ - невозможно!
    Если брать по минималке, то разберитесь в:
    - html 5 (посмотрите на блочную верстку и на флексбоксы (flexbox), обратите внимание на тег form )
    - css3 изучите основы css. Изучите бутстрап (bootstrap 3 или 4)
    - изучите javascript & jQuery. Желательно сразу изучить синтаксис ES6
    - изучите основы TCP / IP
    Знаний из этого источника должно быть предостаточно - https://www.w3schools.com/
    Пройдите learn html, learn css и пожалуй, learn bootstrap. JavaScript и jQuery

    Этого должно быть предостаточно, чтобы писать MVC сайты. А если преуспеете в этом деле, то можете потом переходить на js фреймворки (для новичков подойдет VueJS) + RESTful backend.
    Ответ написан
    2 комментария
  • Каким образом лучше создать администратора в Spring Boot проекте?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Приветствую, коллега!
    Да, Spring посложнее, чем Django. Но раз тебе удобно писать именно на нем, то конечно же стоит писать backend на нем.
    И да, если уж делать проект по-хорошему, то тебе нужен Spring Security. Тебе нужно создать роль ADMIN.
    Так как проект простой, то можешь использовать In-Memory Auth.
    Так как ты пишешь REST, то скорее всего тебе нужно будет реализовать jwt auth.
    Чтобы по умолчанию при старте приложения создать пользователя, можешь имплементировать интерфейс CommandLineRunner и в методе run() создать юзеров и сохранить в БД.

    P.S. БД необязательно.
    Ответ написан
    Комментировать
  • На каком языке CMS сайта будет работать быстрее?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Прежде всего стоит различать такие термины, как CMS, CMF и фреймворки.
    Раз к вашему вопросу добавлен тег Java, то скажу следующее - как правило, на Java CMS не пишут. Можно конечно же написать, но так как такие языки, как Java и C# ориентированы на Enterprise, то обычно на них пишут веб-приложения с использованием различных фреймворков под конкретную задачу. К тому же, если сравнить готовые CMS написанные на Java (например, HippoCMS) и на РНР (например, WordPress), то вы заметите, что деплоить приложения написанные на Java сложнее, чем на РНР. Опять же знаменитая 5-ти минутная установка WP на сервер намного легче. + важный момент заключается в том, что CMS системы написанные на РНР можно развернуть на любых shared хостингам, в то время, как для Java развертывания приложений вам нужно подготовить сервер (VPS или VDS), установить Tomcat или любой другой сервлет-контейнер. Или же деплоить приложение в облако - AWS, Heroku и др. Как минимум, это требует доп. знаний и опыта или же привлечения доп. специалиста - DevOPS.
    Соответственно, не лучшая идея писать CMS на компилируемых языках. Java, C#, Kotlin, Scala и т.д.
    Также многое зависит непосредственно от разработчика. Если вы лучше владеете ЯП - python, то конечно же вам будет легче и лучше писать на нем, нежели на Java.
    Также стоит учесть, что CMS подразумевает некую универсальность применения и соответственно, на CMS может быть много лишнего кода (функционала), который вам и не нужен, но при этом потребляет ресурсы сервера. Или например, CMS может быть подточен на реализацию определенной цели. Например, на блог (как в случае с ВП), но при этом владельцу сайта может понадобится и интернет-магазин или еще что-нибудь. Довольно часто, из-за подобной универсальности приходится жертвовать архитектурой приложения, что непосредственно сказывается на быстродействии. Для наглядности - WP. Там в одной таблице wp_posts могут храниться различные данные (от записей и страниц, вплоть до товаров и объявлений и сообщений форума), хотя по факту каждый из них является отдельной сущностью.
    Также при разработке CMS систем предпочтение я бы отдавал интерпретируемым языкам и также учел бы их распространенность на хостингах. Тут опять-таки преимущество имеет РНР.
    Ответ написан
    Комментировать
  • Парсинг (скрапинг) получение информации с сайтов, авторизация, инструменты, примеры?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Здравствуйте!
    Начнем с простого, когда контент сайта загружается без фреймворков. Соответственно, нет никаких аяксов, не нужно никуда скроллить, чтобы получить следующую страницу или кликать на кнопки и т.д. для получения материалов. Т.е. вам достаточно отправить GET запрос на некий сайт и получить данные.
    В этом случае для парсинга будет достаточно библиотеки jsoup. Либо для своей кастомной реализации используйте DOM & SAX Parser.

    Теперь, чуть усложним задачу сайт точно также формируется без фреймворков, но для получения доступа к информации нужна авторизация. Если тут используется какая-то простая авторизация, то достаточно будет единожды получить кукисы и при каждом запросе указывать на сервер. Также не забывайте про referrer & User-agent.

    Теперь, еще усложним задачу - контент формируется динамически (посредством js-фреймворков или аякс запроса и т.д.). В этом случае jsoup не поможет, так как для загрузки контента вам нужно прокликать на кнопку (Загрузить еще) или проскроллить вниз, чтобы тригернуть загрузку контента и т.д. Т.е. вам нужна некая интерактивность. Для этого стоит посмотреть в сторону Selenium + (любой браузер). В качестве браузера можно использовать - firefox, chromium и др. Для быстродействия желательно использовать headless браузеры.

    Усложняем задачу дальше. Понадобилось авторизоваться и решить некую капчу. В часности рекапчу. Тут скажу заранее, что я сам когда-то давно искал возможные пути обхода и самое простое решение - использовать платный сервис.
    Ссылка на сайт - https://anti-captcha.com/
    После ввода имени пользователя и пароля селениум триггерит клик на капче, а дальше данные пересылаем на сервер и получаем решение капчи.

    Усложним задачу еще больше - различные honeypot. Тут как говорится кто на что горазд. Все зависит от конкретного сайта и конкретной реализации (софта) honeypot. Некоторые могут заблокировать по ip, если запрос был произведен на несуществующий урл. Например, на сайте всего 100 страниц, а вы запросили 101 страницу и попались в ловушку. Или например, вы заполнили невидимое input поле, которое в норме пользователь не видит и соответственно, не заполняет.

    Идем дальше - если вам нужна некая интерактивность (т.е. пользователь сайта должен иметь возможность самостоятельно парсить сайт), то вам нужна клиентская часть написанная на javascript. Подобные онлайн-сервисы имеются. Наберите в гугл web scraping online и увидите различные сервисы. Как правило, они предлагают установить некое расширение, при клике на котором он получает доступ к элементам DOM, а далее уже можно при помощи селекторов (id, xpath, class ) определить что нужно спарсить. Определить тип навигации / пагинации (например, пагинация при помощи нумерации страниц или пагинация при помощи кнопки Далее и др.). Тут могут свои подводные камни. Например, некоторые сайты при достижении максимальной страницы могут выдавать ошибку (404), некоторые не выдают ошибку и лишь показывают контент заново. Иногда нужно проверять страницу на наличие пустоты на странице (на отсутствие элементов по селектору). Иногда нужно проверять страницу на наличие ошибки 404 и т.д. В общем, это уже работа фронтэндера.

    Некоторые динамически формируемые страницы могут подгружать контент при помощи json или xml. Соответственно, для парсинга некоторых сайтов можно обойтись без использования selenium. А лишь запросить материалы по их внутреннему API, а затем при помощи gson или jackson спарсить их.

    Одним из универсальных инструментов парсинга, с которым мне приходилось сталкиваться была программа Visual Web Ripper. Стоит примерно 250-300 долларов. Программа подгружает контент сайта внутри себя через IE (может уже и обновили этот момент). А далее уже можно задавать условия парсинга и экспортировать данные.
    Ответ написан
    Комментировать
  • Нужен совет, как оживить дроп сайт?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Довольно долго занимался этим вопросом и пришел к следующим выводам:
    - иногда лучше не восстанавливать сайт, а лишь парсить нужные данные и создавать новый сайт на базе ВП. В любом случае в скачанном вами архиве лежит статика и круто, если она вообще полностью рабочая.
    - для скачивания использую консольное приложение wayback machine downloader написанный на Ruby. Его можно найти на github
    - После скачивания в зависимости от пожеланий заказчика либо пишу парсер (я например, пишу на java - jsoup) и собираю данные, импортирую их на ВП (либо через REST API или xlsx - плагин WP All Import) и переношу на новый дизайн (на ВП тему), либо создаю тему на основе той статики, которая имеется.
    - Иногда бывает лучше при парсинге не сохранять старые урлы, а настраивать корректные редиректы со старых на новые.
    Ответ написан
    Комментировать
  • Как называется эта ветвь в программирование?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Веб-разработка. Просто в вебе тоже есть разные направления... frontend backend etc.
    Ответ написан
    Комментировать
  • Где лучше хранить изображения?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Без разницы, где вы будете хранить медиафайлы. На проф. проектах они могут храниться на облачном хранилище (например, AWS).
    Если у вас shared хостинг, то обычно есть ограничения на inodes. В среднем 200 - 250 000. А значит, хостинг будет ограничен этим кол-вом файлов.
    Можно еще хранить на Google Drive (Use your drive), Dropbox (Use your Box) & Yandex Disk и т.д.
    Ответ написан
    Комментировать
  • Какая есть альтернатива vueJS для spring Boot?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Думаю, что вам стоит серьезно изучить о том. что такое фронтэнд и какие языки имеются для фронта. Если коротко, то html / css / js.
    Используемый фреймворк фронта не имеет никакого отношения к бекенду. Вы можете использовать React, Angular, VueJs и др. Ведь, по факту на беке это просто restful сервис, который отдает контент и взаимодействует с фронтом.
    Есть ли инструменты для фронтенда у python или быть может на ruby ?

    эти языки предназначены для бекенда. Соответственно, инструментов для фронта у них нет. Но и с фреймворками написанными на вышеуказанных языках (Django, RoR etc.) можно использовать абсолютно те же самые фреймворки, которые я указал выше.
    Ответ написан
    Комментировать
  • "Скрипт" для загрузки файлов на сайт с помощью Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Как сделать так чтобы скрипт использовал мой браузер или был залогинен на нужном сайте.

    Selenium + любой браузер (chromium, firefox) + drive для этого браузера.
    Запускаете браузера в headless режиме и производите все что нужно (загрузить файлы и т.д.).
    Если нужно регулярно выполнять задачу, то добавьте системный процесс.
    Но на мой взгляд в вашем случае скриптовым язык будет лучше реализовать подобное. А-ля js, python.
    Ответ написан
    2 комментария
  • Как создать такое такую кнопку на каждой странице?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вот, важные моменты:
    Создаете обычный div или button или a
    Добавляете ему в CSS свойство position:fixed или position:absolute; right: 0;
    По клику на кнопке средствами js отображаете другой div блок, который виден у вас на скрине справа внизу. Этому блоку например, назначаете position:absolute; right:0; bottom:0;
    Для отображения или скрытия блока используйте jQuery show() & hide() или toggle()
    Ответ написан
    Комментировать
  • Сервис хостера: конструктор сайтов или VDS + Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Мое личное мнение, как человека, который постоянно наступает на грабли... не выбирайте конструкторы!
    WordPress vs Конструкторы - однозначно ВП. Но также важный момент что именно вы хотите реализовать. Для серьезных проектов может быть есть смысл смотреть в сторону CMF & фреймворков
    Ответ написан
    8 комментариев
  • Есть ли плагин для такого функционала карты товара?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Кто то видел плагин, который может сделать подобное - https://i.imgur.com/VlD7Hvb.png

    Вам нужна таблица товаров?
    https://woocommerce.com/products/product-table-for...
    https://barn2.co.uk/wordpress-plugins/woocommerce-...
    https://ru.wordpress.org/plugins/woo-product-table/
    https://wordpress.org/plugins/wc-product-table-lite/

    Наберите в гугл Woocommerce Table
    Ответ написан
    Комментировать
  • Для веб разработки php важнее остальных ЯП?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Никто и не говорит вам, что нужно изучить все ЯП подряд.
    Для сайтостроения достаточно html, css, js, php, sal, regex.
    Ну и изучите пару фреймворко (CMF) написанных на рнр (laravel, yii2) и cms (WordPress, Joomla, bitrix, Drupal). И можете ещё изучить js & css фреймворки( bootstrap, vuejs, react)

    Что касается других ЯП и веб-разработки, то они очень важны. Нельзя недооценивать Java, Python, Ruby, Javascript.
    Ответ написан
    Комментировать
  • Social network на Wordpress хорошо или плохо?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Соц. сеть и подобные сайты для реализации на ВП очень плохая идея. Подобные задачи нужно решать на уровне фреймворков.
    Ответ написан
    Комментировать