Ошибка TIdHttp 404 В доступе отказано (ошибка # 10013) - PullRequest
1 голос
/ 24 апреля 2019

Я всегда использую TIdHttp для получения данных с некоторых страниц, но когда я пытаюсь получить данные с URL-адреса "https://www.melhorcambio.com/", я получаю сообщение об ошибке (StatusCode = 404 - ReasonPhrase = В доступе отказано (Ошибка # 10013)), Я уже изменил некоторые свойства, такие как UserAgent, больше ничего не работало.

URL-адрес обычно доступен во всех браузерах, которые я тестировал, я также отправил GET почтальоном и не возвращал никаких ошибок, но как TIdHttpвозникает ошибка, какая может быть правильная конфигурация, чтобы она работала?

Исключение:

Memo1.Text := IdHTTP.Get('https://www.melhorcambio.com/');

1 Ответ

1 голос
/ 24 апреля 2019

Соскоб Melhorcambio против их условий обслуживания. Если вы переопределите пользовательский агент вашего браузера для представления строки Indy по умолчанию Mozilla/3.0 (compatible; Indy Library) и перейдите на веб-сайт, мы увидим:

Владелец этого сайта (www.melhorcambio.com) заблокировал ваш доступ на основании подписи вашего браузера


enter image description here


Это, скорее всего, специально предназначено для подписи Инди из-за предыдущих инцидентов со скребками, разработанными в Delphi. Это должен быть очень сильный сигнал, что то, что вы делаете, не приветствуется.

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

...