|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.12.2017, 12:29 | #1 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
POST на сайт: что и как запросить?
Здравствуйте!
Не могу разобраться с сайтом Теремка... Вообще плохо владею Post'ом и не могу его понять. Пытался даже репетитора нанять, но первый заход получился неудачным, на второй нет финансов. Может, хоть с конкретной темой помогут местные гуру? Вот страница http://teremok.ru/menu/bliny_sytnye/...hinoy_i_syrom/ Цена появляется только после выбора конкретного места. Места прописаны в коде - можно распарсить. Но цены в коде нет. Есть какие-то коды JS. В том числе увидел такие строчки: Код:
Как я понял, при нажатии кнопки "выбрать" на страницу выбранного продукта идёт запрос. В Form data передаётся как раз этот ID. Он совпадает с тем, который можно распарсить в коде рядом с выбранным местом. Например, для ТЦ Звёздочка addr_id = 525. Можно ли как-то проверить post-запрос в самом хроме? Как понять что ещё обязательно нужно для запроса и как сформировать сам запрос? (через idHTTP) |
14.12.2017, 13:00 | #2 | |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Network - Headers - Request headers и Query String Parameters. Там и готовый пост-запрос, и все его параметры. В целом не совсем понятно, что Вы хотите. Если в ответ на пост-запрос хотите получить цену, то в данном случае это не сработает: пост отправляет только команду "Найти и показать цену на текущей странице для текущего выбранного id товара за текущую дату". Соответвенно, все остальные операции выполняются "внутри" сайта. Чтобы отдавать цену наружу по запросу - сайт должен иметь собственное API.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
14.12.2017, 15:27 | #3 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Что-то я не понял. Пост отправляет команду "найти и показать цену". Показать где? На странице, которую забирает idHTTP.Post? Тогда оттуда же и можно как раз получить саму цену, парсингом.
|
14.12.2017, 15:43 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Пост ничего не командует и не показывает, это просто 4 буквы в тексте HTTP запроса, который читает сервер и что-то (HTML, JSON, картинку, ...) отправляет в ответ.
Изучайте основы HTTP и вкладку Network в DevTools. Если у сайта нет API, то взять HTML (или что там) из ответа и парсить любой библиотекой для парсинга HTML (обычно с помощью CSS селекторов или XPath запросов).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 14.12.2017 в 15:46. |
14.12.2017, 16:19 | #5 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Ну да, это я неточно выразился. Пост в данном случае отправляет такой запрос, который движок сайта понимает как "найти и показать цену". Ну и предоставляет какой-то ответ (можно посмотреть на вкладке Response, если что).
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
14.12.2017, 16:27 | #6 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Там много строк в поле Name. Как понять какую смотреть? Смотрю ту, которая совпадает с адресом страницы продукта.
Этот вариант цену в ответной странице не дал. Хотя, вроде, всё повторил. Кроме "посторонних" куки. Код:
|
15.12.2017, 09:53 | #7 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Мне только кажется, что минимум 10% из тех, кто отвечает в этом форуме на вопросы про Delphi, могут разобраться с этой задачей за 10 минут?
|
15.12.2017, 10:22 | #8 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Каждая строка это отдельный HTTP запрос. Смотреть все если непонятно какой именно нужен. Там можно отфильтровать по типу запроса/содержимого: XHR (ajax), скрипты, картинки и т.п. Обычно все интересующее в XHR (запросы отправленные из JS) и в Doc (сама страница, иногда еще всякие документы, как правило ненужные). document.location скорее всего означает, что оно отправляет POST запрос на адрес текущей страницы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 15.12.2017 в 10:27. |
|
15.12.2017, 11:03 | #9 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Ну хотя бы )
А чего искать-то хоть? Можно как-то понять в каком именно запросе появляется цена поиском по содержимому запросов-ответов? Посмотрел. Оказалось, как раз в xhr и передаётся то, что я перечислил в idHTTP1.Request парой сообщений выше. Но не получается. Возвращается страница без появления стоимости. |
15.12.2017, 11:45 | #10 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Цитата:
Собственно, если смотреть в браузере на вкладке Doc - это вот это поле: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 15.12.2017 в 11:48. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как запросить значение ячейки конкретной строки в листе Excel через запрос? | intersk | Microsoft Office Access | 0 | 27.03.2015 21:01 |
как скопировать весь сайт включая все что подключается в js | goluzov | HTML и CSS | 3 | 17.11.2011 18:14 |
Как запросить логин с которым пользователь входит в комп? | Dorvir | Microsoft Office Excel | 2 | 18.06.2008 13:09 |
сайт в FireFox выглядит на 5+ , а вот в Explorer как не знаю что | Мышь в полоску | HTML и CSS | 4 | 24.10.2007 18:43 |