Имя: Пароль:
1C
 
скачивание страницы по ссылке
0 lamme
 
16.12.19
15:38
1С8 не уф.

есть страница. пытаюсь ее скачать
ИсхСтрока ="?unt1=SDFL&Unt2=refaln"
    httpss = новый HTTPСоединение("mysite.ru",,,,,,Новый ЗащищенноесоединениеOpenSSL(),);
    имятмп = ПолучитьИмяВременногоФайл(xml);
    httpss.Получить(  ИсхСтрока,имятмп);

страница скачивается. но вместо необходимых данных = в блоке на сайте идет некая функция - которая обращается к своей базе SQL и на экране только показывает результат.
соответтсвенно - когда я скачиваю таким образом страницы - вижу эту функцуию. а когда смотрю на экране эту страницу - вижу все как надо. со всеми данными.
----
как такое можно обойти и получить именно страницу с данными ?
(само собой - что запустить функцию не могу)

------
код на сайте такой

jQuery(document).ready(function($){
var dadu_disable=0;
//--//
var scroll_top_button = document.getElementById('scrollTopButton');
if (scroll_top_button !== null) {
scroll_top_button.addEventListener('click', function (event) {
var scroll_top = window.pageYOffset || document.documentElement.scrollTop;
if (scroll_top > 500) {
window.scrollTo(0, 500);
}
setTimeout(function () {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
}, 20);
event.preventDefault();
});
document.addEventListener('scroll', function () {
var scroll_top = window.pageYOffset || document.documentElement.scrollTop;
if (scroll_top > 320) {
scroll_top_button.style.display = 'block';
} else {
scroll_top_button.style.display = 'none';
}
});
}
$.fancybox.defaults.modal = true;
$('[data-fancybox]').fancybox({
padding: 0,
scrolling: 'auto',
modal: true,
beforeShow: function (instance, slide) {
},
beforeClose: function() {
if(fancyboxLock){
return false;
1 lamme
 
16.12.19
15:39
может ее в браузере прогрузить на клиенте
а потом уже результат ортображать ...
2 ДенисЧ
 
16.12.19
15:39
В этом скрипте ничего нет про скачивание данных с сервера.
3 lamme
 
16.12.19
15:46
но именно этот блок идет в том месте - где должны быть данные
4 lamme
 
16.12.19
15:53
прогрузил эту страницу по ссылке как указано тут
https://1clenta.ru/pattern/135

получил - совсем не то что ожидаю.
т.е. такое ощущение - что как то ловят момент отображения страницы ... или с браузера или не с браузера
или если не браузер - то приходит то что я и имею
5 lamme
 
16.12.19
16:07
о ..
если эту страницу ввести в ИЕ - то выходит то что 1С ловит
а если эту же страницу ввести в опере = то все четко
6 lamme
 
16.12.19
16:08
куда дальше капать ?
7 ДенисЧ
 
16.12.19
16:09
Юзер-агента попробовать подменить?
8 lamme
 
16.12.19
16:13
а как ?
9 lamme
 
16.12.19
16:17
о ... на моем свежем ие11 - все работает ...

все .. дальше клиент пусть сам разбирается
все написано  - куда капать = пусть думает
10 crasler
 
16.12.19
16:18
&НаКлиенте
Процедура УстановкаЗаголовковВHTTPЗапросеИз1С(Команда)
    Соединение = Новый HTTPСоединение("yandex.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("User-Agent", "Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1");
    Заголовки.Вставить("Cookie", "id=1");
    
    Ответ = Соединение.Получить(Новый HTTPЗапрос("", Заголовки));
КонецПроцедуры
11 lamme
 
17.12.19
14:57
тупой вопрос ..
User-Agent - тот что Mozilla/5.0 (X11; Linux i686; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 - это только дляMozilla пишется ?
а если у юзера нет Mozilla ?
есть опера или хром ...
12 crasler
 
17.12.19
15:05
(11) Так ты же изображаешь юзера, главное чтоб сервер съел и не подавился!
13 sitex
 
naïve
17.12.19
15:05
(11) Почитай тут, на досуге. https://ru.wikipedia.org/wiki/User_agent
14 lamme
 
17.12.19
16:16
хрень продолжается ...
поставил ИЕ 11
в 1С ессли сделать браузер - ЭлементыФормы.ПолеHTMLДокумента1.Перейти("https://www.1c.ru";);
то все отображается
если в коде - httpss.Получить(  ИсхСтрока,имятмп);
то все тоже .. печально и нет данных

куда думать дальше ?
15 crasler
 
17.12.19
16:19
(14) Попробуй адрес https://1c.ru/ скорее всего идет редирект!
16 lamme
 
17.12.19
16:20
есть правда но ..
в этом браузере - сначала идет строка -
страница открылаь. потом на месте данных идет
"Идет загрузка" 1,5-2 сек , мелькает знак капчи.
и потом идет отображение данных.
------
httpss.Получить(  ИсхСтрока,имятмп); - скачивает мгновенно
17 Йохохо
 
17.12.19
16:24
18 pechkin
 
17.12.19
16:32
так может там аякс какой?
19 pechkin
 
17.12.19
16:33
давай уже реальные адреса, посмотрим
20 lamme
 
17.12.19
16:38
не хочется тут ..
если не сложно - в личику напишите
21 pechkin
 
17.12.19
16:39
там пароли какие то передаются?
22 lamme
 
17.12.19
16:45
там сайт для меня слишком популярный
23 sitex
 
naïve
17.12.19
16:48
(16) Если есть редирект тогда используй WinHttpRequest, есть опция Option(6) //blnEnableRedirects
24 sitex
 
naïve
17.12.19
16:48
(23) +это как вариант
25 lamme
 
17.12.19
16:53
там нет редиректа.
данные на странице формируются динамически
в зависимости от того что ввел в поля выбора пользователь.
по итоге - это страница сайта с определенными параметрами запроса.
вот эту страницу - уже итоговую - пытаюсь поймать
т.е. в 1С пользователь ввел те же параметры что и на сайте.
по каким то правилам сформировалась ссылка. и по этой ссылке скаичаю страницу. разбираю ее.
26 ДенисЧ
 
17.12.19
16:55
(25) Наверняка там ажакс, который формирует запрос к ресту (или, не приведи Моргот, к графкуэлю). Вот этот запрос тебе надо и ловить.
27 lamme
 
17.12.19
16:55
как ?
28 ДенисЧ
 
17.12.19
16:56
(27) фиддлером каким-нибудь. Или админом того сайта.
29 lamme
 
17.12.19
16:57
( 26)
я примерно так в (0) и написал
только может своими словами
30 lamme
 
17.12.19
16:58
а есть инструкция для профанов в этом вопросе ?
)
31 ДенисЧ
 
17.12.19
16:59
(30) Наверняка есть. Гугли фиддлер, лови активность сайта по мере ввода данных на него...
Или лови не активность, а админа сайта, требуй у него апи.
32 lamme
 
17.12.19
17:00
админ сайта не доступен ) вернее - он не длжен знать что такое делается .. )
парсинг идет
33 lamme
 
19.12.19
15:59
делаю через ж.пу
делаю реквизит формы - ПолеHTMLДокумента1  - и это поел загружает данные
ЭлементыФормы.ПолеHTMLДокумента1.Перейти(ссылка на мою страницу)
ждем 10 сек
и потом

ТекстовыйДокумент = Новый ТекстовыйДокумент;
        ТекстовыйДокумент.УстановитьТекст(ЭлементыФормы.ПолеHTMLДокумента1.Документ.body.outerHTML);
        ТекстовыйДокумент.НачатьЗапись(,имяфайлаккужазаписывать)
все .. в итоге тоже самое