получение динамического содержимого веб-страницы

  • Автор темы edwardreed
  • 143
  • Обновлено
  • 17, May 2024
  • #1
Всем привет, Я очень мало знаю о Javascript.

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

Я хочу создать приложение, которое получает содержимое динамической веб-страницы, ищет определенные данные, обрабатывает эти данные и показывает пользователю результаты этой обработки.

Я могу справиться с обработкой и выводом.

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

Мне нужен код для этого.



Когда я исследую эту тему в Интернете, я могу найти множество материалов, которые предполагают, что я уже знаю все о языке, я могу найти материалы, которые позволили бы мне очистить веб-сайт без кода (бесполезно для создания приложения), но я не могу найти ничего, что показывает или объясняет мне процесс.



Может ли кто-нибудь здесь помочь?

edwardreed


Рег
08 Dec, 2010

Тем
1

Постов
3

Баллов
13
  • 18, May 2024
  • #2
Имена взяты из тегов div.

То, что я ищу.

Я спрашивал не о конкатенации строк, а о том, где можно найти данные, которые я ищу.

Я не знаком с командой foreach.

Или json.

Для каждого? $divs как $div? Для меня греческий.

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

4ksner


Рег
04 May, 2012

Тем
0

Постов
2

Баллов
2
  • 18, May 2024
  • #3
Не уверен, что вижу, как мой сервер вызывает страницу, а клиент вызывает сервер, что экономит время. Это два вызова, которые клиент должен дождаться завершения, а не один.

 

karp900


Рег
01 Feb, 2016

Тем
0

Постов
3

Баллов
3
  • 18, May 2024
  • #4
Тогда вам придется поэкспериментировать и учиться. или поделитесь страницей, которую вы очищаете, вместе с желаемым результатом. Ваше имя1, имя2 тоже неясно, так как я понятия не имею, какова структура ваших исходных данных.
 

mailzoo


Рег
04 Jun, 2015

Тем
0

Постов
2

Баллов
2
  • 18, May 2024
  • #5
Тогда все это покажется вам простым и не зациклится на объединении строк FFS. Следует иметь в виду, что программисты в основном нейроотличны, и ваш аутизм здесь считается «нормальным».
 

Neon4


Рег
26 Jan, 2013

Тем
0

Постов
4

Баллов
4
  • 18, May 2024
  • #6
Также: я не удивлен, что мой метод медленнее, он старше.

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

Если я правильно понимаю, метод выборки не поддерживается более старыми версиями.
 

Novohoster


Рег
01 Jul, 2011

Тем
0

Постов
1

Баллов
1
  • 18, May 2024
  • #7
Хорошо, я собираюсь попробовать вашу обработку на сервере и вывод данных в формате JSON, но я должен еще раз повторить свои ограниченные знания этих языков программирования.

В коде foreach в приведенном вами примере, скажем, я хотел, чтобы каждое имя div было представлено в виде строки, например: «имя1/имя2/имя3», как мне это сделать? Строка будет сохранена в $output"
 

zuCYDEbeats


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
  • 19, May 2024
  • #8
Хорошо, я поищу API, который сможет это сделать, но я сомневаюсь, что в данном конкретном случае он существует. Как мне найти его? Я немного знаю PHP. Но я понятия не имею, как превратить код в файл .exe для установки, а это, как я понимаю, необходимо для продажи его как приложения.
 

Kulmanoff


Рег
18 Oct, 2013

Тем
0

Постов
1

Баллов
1
  • 20, May 2024
  • #9
Если у вас нет времени этим заниматься, наймите кого-нибудь, кто сделает это за вас.

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

Если у вас нет на это времени, вам нет смысла ожидать помощи ни от нас, ни от кого-либо еще.
 

Alex Bifert


Рег
12 Sep, 2015

Тем
0

Постов
2

Баллов
2
  • 20, May 2024
  • #10
Я не уверен, что понимаю эту идею, но из головы могу предложить несколько подходов:
  • Селеновый веб-драйвер

    . Благодаря этому инструменту вы можете открыть веб-страницу в Chrome и извлечь все данные. Вы можете навести указатель мыши на любой элемент и извлечь все, что вам нужно.
  • Хром. Это веб-браузер с открытым исходным кодом. Он может делать то же самое, что и Chrome, но вы можете встроить его в свое приложение.


Надеюсь, это будет полезно для вас.
 

Денис Шипков


Рег
04 Jul, 2012

Тем
0

Постов
2

Баллов
2
  • 31, May 2024
  • #11

private1


Рег
12 Nov, 2013

Тем
0

Постов
3

Баллов
3
  • 04, Jun 2024
  • #12
Возможно, здесь я преуменьшаю недостаток своего понимания.

Тем не менее, если вы проявите терпение, пока я выясняю ситуацию, задавая вопросы, я буду признателен за вашу помощь. Частично я выбрал Javascript, потому что знаю, что Electron можно использовать для превращения кода Javascript в приложение.

Я понятия не имею, как это сделать с помощью PHP.

Или что-нибудь еще, если уж на то пошло. Мне не нравится точно объяснять, что я собираюсь сделать в месте, где каждый может программировать лучше, чем я, поскольку я надеюсь заработать на этом немного денег.

Но я могу объяснить ситуацию, которая должна быть функционально одинаковой: Я пытаюсь очистить одну страницу.

Я полагаю, это значительно упростило бы процесс.

Допустим, это страница, на которой продаются книги.



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

met23


Рег
12 May, 2012

Тем
0

Постов
2

Баллов
2
  • 04, Jun 2024
  • #13
Большинство приложений, будь то веб-приложения или мобильные приложения, используют серверную часть.

PHP очень легко освоить с помощью копирования/вставки и изучения по ходу дела.

Поскольку вы получаете значения из всплывающего окна, я настоятельно рекомендую поискать эквивалентный API.

Возвращаясь к примеру с книгой, я ежедневно получаю электронное письмо от сайта под названием BookBub с бесплатными Amazone/Kobo и т. д. в интересующих меня жанрах.



Я не знаю, как они это делают, но я предполагаю, что у них есть веб-сервер, который делает вызов API тем книгопродавцам, которые запрашивают их книги по самой низкой цене в этот день, с размером запроса, скажем, 1000. Как только они это получат, они могут отправить результаты в свою почтовую программу (т. е. мою ежедневную электронную почту ) и на их сайт.

Есть несколько веских причин использовать API:

  • сайт действительно хочет предоставить вам свою информацию
  • API-интерфейсы не меняются очень часто, и какое-то время они будут использовать свой старый API, давая вам время внести необходимые изменения.
  • API обычно бесплатны
  • они могут вносить изменения в свой веб-сайт, не нарушая код, который вы используете.
  • вы можете использовать такие инструменты, как «почтальон», для проверки и тестирования.


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

Кстати, я пишу мобильное приложение, которое будет вызывать некоторые общедоступные API, но я буду сохранять результат и вызывать его снова только через x часов.

Существует множество API, и вы будете поражены тем, на что вы способны.
 

Владимир4


Рег
07 Dec, 2011

Тем
1

Постов
4

Баллов
14
  • 06, Jun 2024
  • #14
У всех нас есть работа и обязательства.

Мы стараемся помочь, но кое-что вам придется сделать самому.

Вам нужно уделять время экспериментам и обучению, иначе вы застрянете, когда исходная страница что-то изменит и нарушит ваш код. Как вы собираетесь создавать свое приложение, если у вас нет времени на обучение? Даже с такими инструментами, как Bubble и Jasonelle, есть чему поучиться.
 

77awesome77


Рег
11 Jan, 2016

Тем
1

Постов
3

Баллов
13
  • 07, Jun 2024
  • #15
Ваш сервер должен вызывать и обрабатывать информацию более эффективно, чем браузер.

Фид, который в конечном итоге получит пользователь, будет меньше — это важно, если он использует мобильное устройство или даже Wi-Fi — он загружает небольшой фид в формате JSON, а не целую веб-страницу.

Обработка надежна, поскольку вы контролируете свой сервер, и все браузеры могут управлять каналом JSON.

Вам не нужно беспокоиться о проблемах с Cors.

Вот задача, я давно не делал ничего подобного.

Царапать https://forums.digitalpoint.com/find-new/posts

и показывать каждую ссылку на странице Тогда возьми этот корм https://www.itamer.com/muck/dpnewthreads.php

и отображать каждую ссылку на странице что быстрее? Имейте в виду, что itamer.com представляет собой общий хостинг среднего уровня и может работать медленнее, чем ваш хостинг. Вот код, который также будет медленнее, чем в реальном времени, но он дает вам некоторый код для начала.
https://codepen.io/itamer/pen/ZEaJqzr
 

Seg1


Рег
03 Dec, 2012

Тем
1

Постов
2

Баллов
12
  • 07, Jun 2024
  • #16
Обычно это делается с помощью серверного процесса, написанного на чем-то вроде PHP и использующего Curl, или основанной на нем библиотеки.

Обратной стороной является то, что если сайт «бессерверный» и использует JavaScript для «гидратации» страницы, вы не получите последнюю версию страницы. Обратной стороной использования javascript является то, что вы столкнетесь с ошибками CORS, но можете получить окончательную версию. Вы сможете найти сценарии, которые делают это под видом оценки веб-сайта или автоматического SEO-анализа.

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

Вероятно, вы не найдете ничего, что «объясняло бы процесс», но мы будем рады ответить на любые вопросы.

Если вы объясните немного больше о том, что вам нужно на страницах, которые вы собираете, мы сможем дать более конкретный совет - например, доступна ли эта информация через API.
 

danet1


Рег
18 Jan, 2012

Тем
1

Постов
2

Баллов
12
  • 08, Jun 2024
  • #17
Извините, я не использовал эти инструменты.

Но я знаю, что мои коллеги использовали их для создания приложения для тестирования веб-сайта.

И они имели большой успех.

А еще одному моему другу довольно часто приходилось покупать билет на поезд, и он целый день открывал сайт и мониторил его.

Он нажимал F5 и проверял, есть ли нужные ему билеты.

Потом он создал приложение на основе веб-драйвера Selenium, и теперь это приложение целый день мониторит сайт и покупает билет.

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

NDGolovko


Рег
01 Jan, 2011

Тем
0

Постов
3

Баллов
3
  • 08, Jun 2024
  • #18
Всем еще раз привет.

API оказался никуда не годным.

Часто требуется несколько минут, чтобы вернуть запрошенные данные.

Так что мне нужно вернуться к моей идее со скребком.

Я попытался сделать очень простой вариант, чтобы начать знакомиться с предметом.

В этом тесте я хочу получить HTML-код домашней страницы Google.

Это не работает.

Может ли кто-нибудь сказать мне, почему?
 

anset


Рег
19 Oct, 2013

Тем
1

Постов
6

Баллов
16
  • 08, Jun 2024
  • #19
Существует также проблема, заключающаяся в том, что невозможно вызвать API без поиска определенного имени. Я не могу просто загрузить всю базу данных API. Так что это не похоже на реальное решение для этой работы. Кто-нибудь знает, почему мой Javascript не работает?
 

warp59


Рег
28 Sep, 2014

Тем
0

Постов
2

Баллов
2
  • 09, Jun 2024
  • #20
Я работаю полный рабочий день, и у меня еще много дел. У меня нет времени экспериментировать и изучать теорию. Мне просто нужен ответ на простой вопрос: используя этот метод, какой код позволит мне взять имена элементов div и поместить их в переменную?
 

Константин3


Рег
11 Feb, 2011

Тем
10

Постов
86

Баллов
186
  • 10, Jun 2024
  • #21
Хорошо, вам не нужно превращать его в .exe — такого больше не происходит.

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

Я понимаю, что вы не хотите раскрывать свой рынок, но мы можем ходить вокруг да около и все равно указывать вам правильное направление.
 

bsxds


Рег
01 Jan, 2011

Тем
1

Постов
2

Баллов
12
  • 10, Jun 2024
  • #22
Хорошо, если я вас правильно понял, с кодом все в порядке, просто Google отказал мне в доступе в целях безопасности.

Ага? Итак, пытаясь использовать сайт, который вы использовали в своих тестах, я получаю ответ.

Но мне не нужен вывод API, я ищу код самой страницы.

Например, то, что вы получите, если щелкнете правой кнопкой мыши и выберите «Проверить» в Chrome.

Я полагаю, что нужные мне данные можно найти в заголовках div.

Так как мне это получить?
 

RedMode


Рег
16 Oct, 2013

Тем
1

Постов
2

Баллов
12
  • 10, Jun 2024
  • #23
Вы можете каждую минуту обращаться к API на своем сервере — если цель состоит в повышении производительности, это все еще вариант. Кроме того, вы точно знаете, сколько вызовов API вы сделаете, и это может остановить рост затрат на API.
 

cotbaloo


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
  • 10, Jun 2024
  • #24
Что касается того, что для этого, вероятно, не существует API, ну, простой поиск в Интернете показывает, что я не знаю, о чем говорю. Кажется, он есть, и он может включать в себя некоторые нужные мне данные, но я пока не уверен. Я также не знаю, как использовать это, чтобы получить то, что хочу.
 

Sealena


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
  • 11, Jun 2024
  • #25
Не смей говорить мне, на что я способен или не способен, или что мне нужно в будущем.

Я высокофункциональный ученый-аутист.

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

Если вы не хотите отвечать на мой вопрос, хорошо.

Никто вас не заставляет.

Но просто скажите, что вы не хотите тратить время.

Или просто не отвечайте.

Не говори со мной свысока.

Я не твой ученик.

Я не твой ребенок.
 

Smarttt


Рег
03 Jan, 2011

Тем
0

Постов
4

Баллов
4
  • 14, Jun 2024
  • #26
 $output = "$name1/$name2/$name3,"
PHP: concatenating/adding strings together is the easy part.
 foreach ($divs as $div) {

... whatever you need to do... save result in $output
}
PHP: Я просто не уверен, откуда вы взяли $name1 и т. д. вам может потребоваться создать больше циклов и т. д.
 

dino29


Рег
01 Jan, 2014

Тем
0

Постов
2

Баллов
2
  • 15, Jun 2024
  • #27
Помоги мне? Никогда не отвечая на прямые вопросы? Затягивая то, что должно было быть просто быстрой проверкой пары фактов? Высокомерно указывая мне, что мне нужно делать, вместо того, чтобы уважать мою способность самому знать, что мне нужно? Я не знаю, как поступают там, где ты родом из «Споилтдивы», а там, откуда я родом, отказ отвечать на прямой вопрос считается грубым, а принимать решения за других людей – еще более грубым.

Хорошо, я вижу, мне нужно найти место со взрослыми.

До встречи.

Так сказать.
 

igor_le


Рег
01 Jan, 2011

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно