Посмотрите свое первое сообщение, где четко написано, что вас забанили (access denied) на сайте.
Все сайты с календарями/котировками и тд борятся с массовыми (и бесполезными для сайта) выкачками. И конечно банят на основе разных мелких зацепок, позволяя при этом работать нормальным броузерам.
И у нас на сайте работает постоянный контроль массовых выкачек. Вот уже пару дней очередной чемпион делает 2 миллиона запросов на выкачку торговых сигналов, будучи забанен. И тоже не понимает ответов "403, access denied".
Меня на сайте не банили, т.к. данные из любого браузера при этом загружаются нормально и до и после пробы загрузки терминалом, кроме того IP динамический и переподключение ничего не меняет, да и ситуация возникла изначально не у меня, а у пользователей автоматической утилиты для скачки страниц.
А вот использование версии протокола H2 вызывает вопросы, т.к. аналогичная ситуация возникла и в соседней ветке с сайтом ffactory на котором также именно для календарных данных используется протокол h2.
Меня на сайте не банили, т.к. данные из любого браузера при этом загружаются нормально и до и после пробы загрузки терминалом, кроме того IP динамический и переподключение ничего не меняет, да и ситуация возникла изначально не у меня, а у пользователей автоматической утилиты для скачки страниц.
А вот использование версии протокола H2 вызывает вопросы, т.к. аналогичная ситуация возникла и в соседней ветке с сайтом ffactory на котором также именно для календарных данных используется протокол h2.
Прочтите посимвольно все, что я написал, пожалуйста. Там есть четкий ответ, почему вас в броузере не блокируют. И почему блокируют с утилитой.
Проблема не в том, что отсутствую базовые знания по WEB, а в том, что даже после ряда просьб так и не соизволил предоставить комфортных условий для осуществления помощи ему же.
Нужно просто добавить в свойства HTTP заголовка - accept-encoding:gzip, deflate, br
voidOnStart()
{
char post[],result[];
string cookie = "accept-encoding:gzip, deflate, br";
string headers;
string url="https://www.dailyfx.com/calendar?previous=true&week=2017/0723";
int timeout=20000;
int res;
res=WebRequest("GET",url,cookie,timeout,post,result,headers);
//--- проверка ошибок if(res==-1)
{
Print("Ошибка в WebRequest. Код ошибки =",GetLastError());
//--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления MessageBox("Необходимо добавить адрес '"+url+"' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION);
}
else
{
//--- успешная загрузка PrintFormat("Файл успешно загружен, Размер файла =%d байт.",ArraySize(result));
//--- сохраняем данные в файл int filehandle=FileOpen("129369.htm",FILE_WRITE|FILE_BIN);
//--- проверка ошибки if(filehandle!=INVALID_HANDLE)
{
//--- сохраняем содержимое массива result[] в файл FileWriteArray(filehandle,result,0,ArraySize(result));
//--- закрываем файл FileClose(filehandle);
}
elsePrint("Ошибка в FileOpen. Код ошибки =",GetLastError());
}
}
Проблема не в том, что отсутствую базовые знания по WEB, а в том, что даже после ряда просьб так и не соизволил предоставить комфортных условий для осуществления помощи ему же.
Нужно просто добавить в свойства HTTP заголовка - accept-encoding:gzip, deflate, br
Чтобы самому не разжимать файл, лучше написать
string cookie = "accept-encoding: deflate";
Как я и говорил - на стороне сервера контролируют мелочи в http запросах и просто дают отказ тем, кто не выглядит как полноценный броузер с полным набором полей.
Это не проблема WebRequest, а именно защита сервера от парсинга различными утилитами, которых можно легко задетектировать по мелочам в полях запроса.
Как я и говорил - на стороне сервера контролируют мелочи в http запросах и просто дают отказ тем, кто не выглядит как полноценный броузер с полным набором полей.
Это не проблема WebRequest, а именно защита сервера от парсинга различными утилитами, которых можно легко задетектировать по мелочам в полях запроса.
Премного благодарен Вам за помощь, теперь работает.
Посмотрите свое первое сообщение, где четко написано, что вас забанили (access denied) на сайте.
Все сайты с календарями/котировками и тд борятся с массовыми (и бесполезными для сайта) выкачками. И конечно банят на основе разных мелких зацепок, позволяя при этом работать нормальным броузерам.
И у нас на сайте работает постоянный контроль массовых выкачек. Вот уже пару дней очередной чемпион делает 2 миллиона запросов на выкачку торговых сигналов, будучи забанен. И тоже не понимает ответов "403, access denied".
Меня на сайте не банили, т.к. данные из любого браузера при этом загружаются нормально и до и после пробы загрузки терминалом, кроме того IP динамический и переподключение ничего не меняет, да и ситуация возникла изначально не у меня, а у пользователей автоматической утилиты для скачки страниц.
А вот использование версии протокола H2 вызывает вопросы, т.к. аналогичная ситуация возникла и в соседней ветке с сайтом ffactory на котором также именно для календарных данных используется протокол h2.
Меня на сайте не банили, т.к. данные из любого браузера при этом загружаются нормально и до и после пробы загрузки терминалом, кроме того IP динамический и переподключение ничего не меняет, да и ситуация возникла изначально не у меня, а у пользователей автоматической утилиты для скачки страниц.
А вот использование версии протокола H2 вызывает вопросы, т.к. аналогичная ситуация возникла и в соседней ветке с сайтом ffactory на котором также именно для календарных данных используется протокол h2.
Прочтите посимвольно все, что я написал, пожалуйста. Там есть четкий ответ, почему вас в броузере не блокируют. И почему блокируют с утилитой.
https2 тут не играет роли вообще.
Проблема не в том, что отсутствую базовые знания по WEB, а в том, что даже после ряда просьб так и не соизволил предоставить комфортных условий для осуществления помощи ему же.
Нужно просто добавить в свойства HTTP заголовка - accept-encoding:gzip, deflate, br
Проблема не в том, что отсутствую базовые знания по WEB, а в том, что даже после ряда просьб так и не соизволил предоставить комфортных условий для осуществления помощи ему же.
Нужно просто добавить в свойства HTTP заголовка - accept-encoding:gzip, deflate, br
Чтобы самому не разжимать файл, лучше написать
Как я и говорил - на стороне сервера контролируют мелочи в http запросах и просто дают отказ тем, кто не выглядит как полноценный броузер с полным набором полей.
Это не проблема WebRequest, а именно защита сервера от парсинга различными утилитами, которых можно легко задетектировать по мелочам в полях запроса.
Чтобы самому не разжимать файл, лучше написать
Как я и говорил - на стороне сервера контролируют мелочи в http запросах и просто дают отказ тем, кто не выглядит как полноценный броузер с полным набором полей.
Это не проблема WebRequest, а именно защита сервера от парсинга различными утилитами, которых можно легко задетектировать по мелочам в полях запроса.
Премного благодарен Вам за помощь, теперь работает.