powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / при отправке http.Send страница возвращает error, как устранить? vba
2 сообщений из 2, страница 1 из 1
при отправке http.Send страница возвращает error, как устранить? vba
    #38050169
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
Уважаемые форумчане, помогите с решением проблемы.
Есть код на vb для получения ссылки.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Dim doc As New HTMLDocument
Set doc = New HTMLDocument 'early binding
Set doc = CreateObject("htmlfile")  'late binding
' в http.ResponseText =  записывается (не пойму почему, вот такая конструкция) "<P>&nbsp</P>"
doc.body.innerHTML = http.ResponseText
For Each link In doc.Links
  If (InStr(link.href, websiteURL) > 0) Then
     targetRange.Cells(1, 3).Formula = link.innerText



Он работает нормально. Но бывают случаи когда
Error: Не удается установить соединение с сервером
Error: Время ожидания операции истекло

Error возвращается так.
Код: vbnet
1.
2.
3.
4.
5.
6.
Sub http_OnError(ByVal ErrorNumber As Long, ByVal ErrorDescription As String)
    '' WinHTTP has encountered an error. Display it
    targetRange.Cells(1, 2).Value = Now
    ShowError "Error: " & ErrorDescription
    done = True
End Sub



сама проверка идет так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Check(ByVal URL As String, ByRef rng As Range, ByVal website As String)
    done = False
    pageURL = URL
    websiteURL = website
    Set targetRange = rng

    If (http Is Nothing) Then
       Set http = New WinHttp.WinHttpRequest
        http.Option(WinHttpRequestOption_UserAgentString) = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16"     
    End If
    http.Open "GET", pageURL, True
    http.Send
    http.SetTimeouts 50, 50, 50, 50
    
End Sub



но при повторной проверке, линки находит, чаще всего.
Нужно чтоб ошибки перерабатывались.
Спасибо
...
Рейтинг: 0 / 0
при отправке http.Send страница возвращает error, как устранить? vba
    #38052566
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
погуглив довольно длительное время.
работа сводится к парсингу ссылок на разных языковых сайтах. т.е. (беларусский,, албанский и тд.
смог переформулировать вопрос.
в doc.body.innerHTML = http.responseText
не может обработать юникод. выдавая ошибку.
Код: vbnet
1.
Run-time error '-2147023783 (80070459)' 


Символ Юникода не имеет сопоставления в конечной многобайтовой кодовой странице. И как его подружить?
нашел
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub GetInformationFromINet()
Dim oHttp As Object
Dim strURL As String

strURL = "здесь необходимо указать адрес сайта, что то вроде http://mail.ru/"

On Error Resume Next
Set oHttp = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If oHttp Is Nothing Then
MsgBox "Не удалось инициализировать объект MSXML!"
Exit Sub
End If

oHttp.Open "GET", strURL, False
oHttp.Send

Debug.Print oHttp.ResponseText
Set oHttp = Nothing
MsgBox "Данные успешно импортированы!", vbInformation
End Sub


но он не выдает совсем ничего(

Возможно кто знает как вылечить?
либо как написать, чтоб оно не выдавало ошибку а пропускало ее.
Спасибо.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / при отправке http.Send страница возвращает error, как устранить? vba
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]