Как создать веб-приложение Java

Вы, вероятно, столкнулись с каким-то элементом или тегом в списке containers, который отличается от всех других элементов, которые вы ищете.

Вы можете изменить способ указания списка containers, изменив параметры поиска в методе soup.findAll().

Попробуйте напечатать containers и выяснить, почему 16-й элемент в этом списке отличается, и соответственно скорректируйте поиск.

В качестве альтернативы, вы можете использовать попытку, за исключением того, что-то вроде этого:

for container in containers:
    try:
       product_name = container.h3.text
       item_details_container = container.findAll('div',{'class':'s-item__details clearfix'})
       item_price = item_details_container[0].div.text
       item_style = item_details_container[0].findAll('span',{'class':'s-item__detail s- 
       item__detail--secondary'})[0].text
       shipping_detail = item_details_container[0].findAll('span',{'class':'s-item__shipping s-item__logisticsCost'})[0].text

       # etc ...

    except <name of your error here, eg. TypeError>:
        print(f'except triggered for {container}')

5
задан Sylvain 16 May 2009 в 11:18
поделиться

5 ответов

Это очень сложный вопрос, потому что я недавно был в вашей ситуации, и я постараюсь дать вам некоторое представление. По сути, для Java существует множество вариантов фреймворков, и никто не может сказать вам, какая из них лучше всего подходит для вас. Мы можем дать вам разбивку некоторых технологий.

Ниже приводится то, что Я наткнулся на поиски тех же ответов, что и вы.

В Java есть множество технологий, которые пытаются предоставить полнофункциональное решение. Эти технологии можно разделить на другие технологии, но они хорошо работают, когда вы используете их вместе.

По сути, существует 3 уровня веб-приложений: уровень представления, бизнес и уровень данных. Уровень представления - это интерфейс, который видит пользователь. Как правило, для этих трех слоев можно смешивать и сопоставлять технологии. Вы можете, например, использовать интерфейс Stripes с фреймворком Spring для IOC и Hibernate в качестве ORM.

Есть много отличных технологий, которые вы можете использовать для уровня представления, включая Spring-MVC, STRUTS, Stripes, Wicket, JSF / SEAM и Tapestry среди немногих. Большинство из них используют JSP для представления с использованием JSTL, за исключением калитки, которая фактически полностью отделяет HTML от логики с помощью «компонентов» Java (POJOS). У обоих подходов есть свои преимущества и недостатки. Преимущество калитки состоит в том, что у вас есть статическая проверка типов и полное разделение HTML-кода, чтобы вы могли передать его своему дизайнеру.

Для бизнес-уровня обычно люди используют некую структуру инверсии управления (IOC) для Внедрение зависимостей (DI). Популярные фреймворки для IOC - Spring и Seam, они имеют связанные технологии, такие как Spring-security, и обычно поддерживаются другими технологиями. Google Guice, похоже, популярен в качестве среды прямого ввода-вывода.

Наконец, для уровня данных большинство людей склонны использовать Hibernate или JPA. Есть и другие, но у меня нет опыта работы с ними, и я не могу предложить больше информации.

Tapestry - это еще один фреймворк, который пытается быть полным стеком из того, что я понимаю, и использует калитку, как (или, я думаю, Wicket берет гобелен- вроде) подход. Grails - это еще одна полнофункциональная структура, использующая Groovy и построенная на основе Spring и Hibernate. Если вам нравится Rails, вам подойдет Grails.

Большинство этих технологий имеют много доступной информации и очень активные списки рассылки / IRC-чаты. Что вам нужно сделать, так это взглянуть на них, а затем решить, какой подход вам подходит. Никто здесь не может сказать вам, что вам понравится.

Если вам нужна рекомендация, я хотел бы однажды использовать стек Wicket / Guice / Hibernate.

9
ответ дан 18 December 2019 в 09:52
поделиться

Моя любимая - определенно весна. Новый Spring MVC 2.5 легко и быстро настраивается, множество аннотаций помогут вам декларативно подключить контроллеры, что избавит вас от лишнего набора текста. Он также интегрируется с контейнером Spring, который, безусловно, является моим любимым легким заменяющим контейнером J2EE. Обычно я комбинирую SpringMVC с простым JSP, но есть много других технологий просмотра на выбор. Для настойчивости я обычно использую Hibernate. Возможно, стоит взглянуть на Spring ROO , который похож на Grails без Groovy. Spring Security предлагает красивый и простой декларативный способ обеспечения безопасности и интегрируется с целым рядом технологий аутентификации.

Maven и ant являются инструментами сборки, в то время как maven также обрабатывает зависимости за вас. Ты только" настройте дескрипторы, которые описывают нужные библиотеки и требования к версии, и maven загрузит для вас все библиотеки и их зависимости. Однако это заставляет вас следовать определенной схеме проекта. Для муравья есть плющ, который делает зависимости.

3
ответ дан 18 December 2019 в 09:52
поделиться

Определенно используйте Spring для задней части; на их бесплатном форуме поддержки есть отличное сообщество (вы также можете заплатить за более формальную поддержку).

Что касается вашего решения использовать Hibernate, вы можете захотеть написать код против JPA, чтобы отделить ваше приложение от Hibernate (который является одним из несколько реализаций JPA).

Если вам нужен интерфейс Ajax, стоит взглянуть на структуру ZK ; его очень легко использовать без необходимости изучать JavaScript, и он позволяет избежать использования сантехнических библиотек, таких как DWR.

2
ответ дан 18 December 2019 в 09:52
поделиться

Предлагаю вам взглянуть на Grails . Grails - это фреймворк для веб-приложений, основанный на "кодировании по соглашению", основанный на стеке проверенных фреймворков Java (Spring, Hibernate, ...) и использующий язык Groovy .

Красота Grails в том, что вам понадобится немного знаний о Spring, Hibernate и т. д., чтобы начать работу. Но после этого у вас по-прежнему будет доступ ко всем возможностям этих фреймворков, если в этом возникнет необходимость.

2
ответ дан 18 December 2019 в 09:52
поделиться

Совет других использовать Spring - отличная идея. Вы обнаружите, что на самом деле вы будете использовать несколько разных фреймворков вместе, потому что каждый из них решает несколько разные проблемы.

Я бы посоветовал вам потратить некоторое время на каждую структуру или технологию, прежде чем переходить к ним, но в конечном итоге вы захотите заставить их работать вместе. Например, вам может потребоваться установка Struts + Spring + Hibernate. Их настройка может быть головной болью.

Поэтому я предлагаю вам использовать AppFuse , который помогает, создавая базовое приложение с базовыми функциями. Это огромная экономия времени. Вам, конечно же, необходимо понимать различные фреймворки, которые настроены для вас, так что это не волшебное решение.

1
ответ дан 18 December 2019 в 09:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: