Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ошибка 404 / 22 сообщений из 22, страница 1 из 1
28.07.2011, 15:23
    #37371081
igor701
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Всем доброго дня! Уважаемые форумчане подскажите занялся парсингом страниц мнтернета через эксель
код для подключения и открытия страницы таков
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
addr = "URL;http://catalog.auto.ru/catalog/cars/card/" & str & ".html"
                On Error GoTo Propusk
                With xl.Workbooks.Add(- 4167 ).Worksheets( 1 )
                With .QueryTables.Add(addr, .[a1]) 
                .AdjustColumnWidth = True:               
                .WebSelectionType =  3 
                .WebFormatting =  3  
                .WebTables =  1 
                .Refresh BackgroundQuery:=False 
                End With
                End With
так вот при отсутствии страницы обработчиком On Error GoTo Propusk один раз проскакивает а на второй раз выдает ошибку на строчке
Код: plaintext
.Refresh BackgroundQuery:=False 
и в сообщении пишет ошибка 1004 невозможно открыть страницу подскажите как решить эту задачу чтобы при отсутствии страницы проскакивать на метку Заранее Спасибо!
...
Рейтинг: 0 / 0
28.07.2011, 15:30
    #37371098
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701,
хоть бы с номером ошибки определились, -
в заголовке 404 html, not found
в тексте 1004 odbc, general error
...
Рейтинг: 0 / 0
28.07.2011, 15:30
    #37371100
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Если рассматривать опубликованный код, то ответ на вопрос
igor701как решить эту задачу чтобы при отсутствии страницы проскакивать на метку будет - "поставить метку Propusk"

А вообще, дело скорее всего в неправильном использовании обработчика ошибок (скорее всего отсутствие Resume и циклический вызов)
...
Рейтинг: 0 / 0
28.07.2011, 15:36
    #37371116
igor701
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
скукотищаigor701,
хоть бы с номером ошибки определились, -
в заголовке 404 html, not found
в тексте 1004 odbc, general error
чем разглагольствовать лучше подскажите как исправить
...
Рейтинг: 0 / 0
28.07.2011, 15:37
    #37371121
igor701
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Shocker.Pro,
метка стоит по подробнее про Resume можно
...
Рейтинг: 0 / 0
28.07.2011, 15:38
    #37371122
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701чем разглагольствовать лучше подскажите как исправить как я сказал - правильно использовать обработчик ошибок. Варианта два:
1) штудировать хелп
2) опубликовать не огрызок кода, а весь цикл и обработчик ошибок
...
Рейтинг: 0 / 0
28.07.2011, 15:39
    #37371124
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701метка стоит по подробнее про Resume можно обработчик ошибок должен заканчиваться командой Resume (ну или Exit Sub, End Sub....)
...
Рейтинг: 0 / 0
28.07.2011, 15:39
    #37371125
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701,
Шокер уже подсказал, - нормальный обработчик ошибок написать.
...
Рейтинг: 0 / 0
28.07.2011, 15:48
    #37371143
igor701
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Shocker.Proigor701чем разглагольствовать лучше подскажите как исправить как я сказал - правильно использовать обработчик ошибок. Варианта два:
1) штудировать хелп
2) опубликовать не огрызок кода, а весь цикл и обработчик ошибок
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
Private Sub loti()
'On Error GoTo Propusk
Dim xl As Object
Dim str As Variant
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Dim ds As DAO.Recordset
Set ds = CurrentDb.OpenRecordset("Afto", dbOpenTable)
Dim dat( 1  To  80 ,  1  To  3 ) As Variant

For i =  10012  To  10012 
str = i
ds.AddNew
ds![Íîìåð ñòðàíèöû] = i


    Me.Ïîëå 3  = str
                addr = "URL;http://catalog.auto.ru/catalog/cars/card/" & str & ".html"
                'On Error GoTo Propusk
                With xl.Workbooks.Add(- 4167 ).Worksheets( 1 )
                With .QueryTables.Add(addr, .[a1]) ' ÓÑÒÀÍÀÂËÈÂÀÅÌ ÑÎÅÄÈÍÅÍÈÅ Ñ URL È ÓÊÀÇÛÂÀÅÌ ÊÓÄÀ ÏÎÌÅÑÒÈÒÜ
                .AdjustColumnWidth = True: ' ÓÊÀÇÛÂÀÅÌ ØÈÐÈÍÓ ÑÒÎÁÖÎÂ ÂÛÐÎÂÍßÒÜ
                '.RefreshPeriod = 0 ' ÎáÍÎÂËÅÍÈÅ ÄÀÍÍÛÕ 0=ÎÒÊËÞ×ÅÍÍÎ
                .WebSelectionType =  3  'ÎÏÐÅÄÅËßÅÒ 1-ÇÀÃÐÓÆÀÅÌ  ÂÑÞ ÑÒÐÀÍÈÖÓ,2 ÁÅÇ ÂÅÕÍÈÕ ÑÑÑÛËÎÊ
                .WebFormatting =  3  '1 - Âñå ôîðìàòèðîâàíèå èìïîðòèðîâàí. 3 - Íèêàêèõ ôîðìàòèðîâàíèÿ èìïîðòèðîâàí.  2 - ñîâìåñòèìûõ ñ íàñûùåííûì òåêñòîâûì ôîðìàòîì ôîðìàòèðîâàíèÿ èìïîðòèðîâàí.
                .WebTables =  1  'ÓÊÀÇÛÂÀÅÒ ÍÎÌÅÐÐ ÒÀÁËÈÖÛ ÍÀ WEB ÑÒÐÀÍÈÖÅ
                .Refresh BackgroundQuery:=True ' ÑÊÐÛÂÀÅÒ ÈÍÔÎÐÌÀÖÈÞ Î ÏÎËÓ×ÅÍÈÈ ÄÀÍÍÛÕ ÍÀ ÇÀÄÍÅÌ ÏËÀÍÅ ËÈÑÒÀ
                'Debug.Print .Cells(1, 1), .Cells(1, 2)
                End With
                End With
    
    With xl.Workbooks( 1 ).Worksheets( 1 )
    
        

        For ii =  1  To  80 
            dat(ii,  1 ) = LTrim(.Cells(ii,  1 ))
            dat(ii,  2 ) = LTrim(.Cells(ii,  2 ))
            dat(ii,  3 ) = LTrim(.Cells(ii,  3 ))
           'Debug.Print dat(ii, 1); dat(ii, 2); dat(ii, 3); dat(ii, 4); dat(ii, 5)
        Next ii

    End With




p1 = InStr( 1 , dat( 5 ,  2 ), "/")
p2 = InStr(InStr( 1 , dat( 5 ,  2 ), "/") +  1 , dat( 5 ,  2 ), "/")
p3 = InStr(InStr(InStr( 1 , dat( 5 ,  2 ), "/") +  1 , dat( 5 ,  2 ), "/") +  1 , dat( 5 ,  2 ), "/")
'Debug.Print p1, p2, p3

ds![Òèï òðàíñïîðòà] = Mid(dat( 5 ,  2 ),  1 , p1 -  1 )
ds![Ìàðêà] = Mid(dat( 5 ,  2 ), p1 +  1 , p2 - p1 -  2 )
ds![Ìîäåëü] = Mid(dat( 5 ,  2 ), p2 +  1 , p3 - p2 -  2 )
ds![Ìîäèôèêàöèÿ] = Mid(dat( 5 ,  2 ), p3 +  1 )
'Debug.Print ds![Òèï òðàíñïîðòà], "|", ds![Ìàðêà], "|", ds![Ìîäåëü], "|", ds![Ìîäèôèêàöèÿ], "|",
       
        
        
    For ii =  1  To  80 
        Select Case dat(ii,  2 )
                             
        Case "Òèï êóçîâà"
        ds![Òèï êóçîâà] = dat(ii,  3 )
        Case "Êîëè÷åñòâî äâåðåé"
        ds![Êîëè÷åñòâî äâåðåé] = dat(ii,  3 )
        Case "Êîëè÷åñòâî ìåñò"
        ds![Êîëè÷åñòâî ìåñò] = dat(ii,  3 )
        Case "Äëèíà"
        ds![Äëèíà] = dat(ii,  3 )
        Case "Øèðèíà"
        ds![Øèðèíà] = dat(ii,  3 )
        Case "Âûñîòà"
        ds![Âûñîòà] = dat(ii,  3 )
        Case "Êîëåñíàÿ áàçà"
        ds![Êîëåñíàÿ áàçà] = dat(ii,  3 )
        Case "Êîëåÿ ïåðåäíÿÿ"
        ds![Êîëåÿ ïåðåäíÿÿ] = dat(ii,  3 )
        Case "Êîëåÿ çàäíÿÿ"
        ds![Êîëåÿ çàäíÿÿ] = dat(ii,  3 )
        Case "Äîðîæíûé ïðîñâåò"
        ds![Äîðîæíûé ïðîñâåò] = dat(ii,  3 )
        Case "Îáúåì áàãàæíèêà ìàêñèìàëüíûé"
        ds![Îáúåì áàãàæíèêà ìàêñèìàëüíûé] = dat(ii,  3 )
        Case "Îáúåì áàãàæíèêà ìèíèìàëüíûé"
        ds![Îáúåì áàãàæíèêà ìèíèìàëüíûé] = dat(ii,  3 )
        Case "Ðàñïîëîæåíèå äâèãàòåëÿ"
        ds![Ðàñïîëîæåíèå äâèãàòåëÿ] = dat(ii,  3 )
        Case "Îáúåì äâèãàòåëÿ"
        ds![Îáúåì äâèãàòåëÿ] = dat(ii,  3 )
        Case "Ìîùíîñòü"
        ds![Ìîùíîñòü] = dat(ii,  3 )
        Case "Ïðè îáîðîòàõ"
        ds![Ïðè îáîðîòàõ] = dat(ii,  3 )
        Case "Êðóòÿùèé ìîìåíò"
        ds![Êðóòÿùèé ìîìåíò] = dat(ii,  3 )
        Case "Ñèñòåìà ïèòàíèÿ"
        ds![Ñèñòåìà ïèòàíèÿ] = dat(ii,  3 )
        Case "Íàëè÷èå òóðáîíàääóâà"
        ds![Íàëè÷èå òóðáîíàääóâà] = dat(ii,  3 )
        Case "Ðàñïîëîæåíèå öèëèíäðîâ"
        ds![Ðàñïîëîæåíèå öèëèíäðîâ] = dat(ii,  3 )
        Case "Êîëè÷åñòâî öèëèíäðîâ"
        ds![Êîëè÷åñòâî öèëèíäðîâ] = dat(ii,  3 )
        Case "Äèàìåòð öèëèíäðà"
        ds![Äèàìåòð öèëèíäðà] = dat(ii,  3 )
        Case "Õîä ïîðøíÿ"
        ds![Õîä ïîðøíÿ] = dat(ii,  3 )
        Case "Ñòåïåíü ñæàòèÿ"
        ds![Ñòåïåíü ñæàòèÿ] = dat(ii,  3 )
        Case "Êîëè÷åñòâî êëàïàíîâ íà öèëèíäð"
        ds![Êîëè÷åñòâî êëàïàíîâ íà öèëèíäð] = dat(ii,  3 )
        Case "Òîïëèâî"
        ds![Òîïëèâî] = dat(ii,  3 )
        Case "Ïðèâîä"
        ds![Ïðèâîä] = dat(ii,  3 )
        Case "Êîë-âî ïåðåäà÷ (ìåõ êîðîáêà )"
        ds![Êîë-âî ïåðåäà÷ (ìåõ êîðîáêà )] = dat(ii,  3 )
        Case "Êîë-âî ïåðåäà÷ (àâòîìàò êîðîáêà)"
        ds![Êîë-âî ïåðåäà÷ (àâòîìàò êîðîáêà)] = dat(ii,  3 )
        Case "Òèï ïåðåäíåé ïîäâåñêè"
        ds![Òèï ïåðåäíåé ïîäâåñêè] = dat(ii,  3 )
        Case "Òèï çàäíåé ïîäâåñêè"
        ds![Òèï çàäíåé ïîäâåñêè] = dat(ii,  3 )
        Case "Ïåðåäíèå òîðìîçà"
        ds![Ïåðåäíèå òîðìîçà] = dat(ii,  3 )
        Case "Çàäíèå òîðìîçà"
        ds![Çàäíèå òîðìîçà] = dat(ii,  3 )
        Case "ÀÁÑ"
        ds![ÀÁÑ] = dat(ii,  3 )
        Case "Óñèëèòåëü ðóëÿ"
        ds![Óñèëèòåëü ðóëÿ] = dat(ii,  3 )
        Case "Òèï ðóëåâîãî óïðàâëåíèÿ"
        ds![Òèï ðóëåâîãî óïðàâëåíèÿ] = dat(ii,  3 )
        Case "Ìàêñèìàëüíàÿ ñêîðîñòü"
        ds![Ìàêñèìàëüíàÿ ñêîðîñòü] = dat(ii,  3 )
        Case "Ðàñõîä òîïëèâà Ñìåøàííûé öèêë"
        ds![Ðàñõîä òîïëèâà Ñìåøàííûé öèêë] = dat(ii,  3 )
        Case "Îáúåì òîïëèâíîãî áàêà"
        ds![Îáúåì òîïëèâíîãî áàêà] = dat(ii,  3 )
        Case "Ñíàðÿæåííàÿ ìàññà àâòîìîáèëÿ"
        ds![Ñíàðÿæåííàÿ ìàññà àâòîìîáèëÿ] = dat(ii,  3 )
        Case "Ðàçìåð øèí"
        ds![Ðàçìåð øèí] = dat(ii,  3 )

        End Select
    Next ii
        
        
        
Propusk:
    ds.Update
    xl.ActiveWorkbook.Close SaveChanges:=False
Next i
xl.Quit
Set xl = Nothing

End Sub
Вот весь код
...
Рейтинг: 0 / 0
28.07.2011, 15:50
    #37371151
igor701
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701,
код и работа в аксесе
вопрос ведь простой как пропустить в цикле страницу и перейти к следующей? или нет
...
Рейтинг: 0 / 0
28.07.2011, 15:52
    #37371165
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
предлагаю сделать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
...
.WebTables =  1 
On Error Resume Next
.Refresh BackgroundQuery:=True
If Err<> 0  GoTo Propusk
On Error GoTo  0 
End With
...
Код: plaintext
1.
2.
3.
4.
...
Propusk:
On Error GoTo  0 
ds.Update
...
...
Рейтинг: 0 / 0
28.07.2011, 16:01
    #37371186
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Shocker.Pro,
Код: plaintext
On Error
обнуляет ошибку? Если нет, - то твой код не решит пробему ТС.
...
Рейтинг: 0 / 0
28.07.2011, 16:09
    #37371203
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701igor701,
код и работа в аксесе
вопрос ведь простой как пропустить в цикле страницу и перейти к следующей? или нетили НЕТ
в "крике о помощи"
Код: plaintext
                .Refresh BackgroundQuery:=False 
"пятью минутами позже" , типа "вот весь код..."
Код: plaintext
1.
               .Refresh BackgroundQuery:=True ' ÑÊÐÛÂÀÅÒ ÈÍÔÎÐÌÀÖÈÞ Î ÏÎËÓ×ÅÍÈÈ ÄÀÍÍÛÕ ÍÀ ÇÀÄÍÅÌ ÏËÀÍÅ ËÈÑÒÀ
...
Рейтинг: 0 / 0
28.07.2011, 16:10
    #37371206
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
скукотища
Код: plaintext
On Error
обнуляет ошибку? Если нет, - то твой код не решит пробему ТС. Скукотища, ты меня удивляешь. Конечно обнуляет.
...
Рейтинг: 0 / 0
28.07.2011, 16:32
    #37371265
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Shocker.Pro,
спасибо, вразумил. Почему-то запало в мозгъ, что номер ошибки обнуляет только инструкция Resume (не считая явного err.clear или выхода за пределы видимости)
...
Рейтинг: 0 / 0
28.07.2011, 16:41
    #37371293
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
> Автор: Shocker.Pro
> Конечно обнуляет.


А мне, смутно помнится, что
Код: plaintext
On Error GoTo  0 
сбрасывает установленный обработчик ошибок(типа catch {} в
C++)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.07.2011, 16:42
    #37371294
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Игорь Горбонос> Автор: Shocker.Pro
> Конечно обнуляет.


А мне, смутно помнится, что
Код: plaintext
On Error GoTo  0 
сбрасывает установленный обработчик ошибок(типа catch {} в
C++) все верно, одно другому не мешает
...
Рейтинг: 0 / 0
28.07.2011, 16:50
    #37371315
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701,
( Re: 11040297 )
этот код не рабочий.
Не обращая внимание на:
- асинхронное вуполнение запроса и возможное закрытие книги до оного завершения
- одну итерацию в цикле

по ссылке
http://catalog.auto.ru/catalog/cars/card/10013.html
запрос возвращает:
Ваш регион: выбратьЛегковые автомобилиГрузовые и коммерческиеБронеавтомобилиСпецтехникаРетро автомобилиАвтодомаМото и другиеАльтернативный транспортВодныйВоздушныйВелосипедыКупить купонТурагентство AUTO.RUКупить Б/У

сомневаюсь сильно, что вам нужна эта табличка.
Может всё-таки покажете Вашу процедуру получения данных из каталога http: //catalog.auto.ru/catalog/cars/
?
Если-таки наберётесь мужества, - перед копированием из редактора кода переключите раскладку на русскую.
...
Рейтинг: 0 / 0
28.07.2011, 17:14
    #37371366
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
OFF> Автор: скукотища
> по ссылке
> http://catalog.auto.ru/catalog/cars/card/10013.html
> запрос возвращает:


Да?
А у меня такой симпатичный SAAB'чик показывает. Практически раритет!


> Автор: скукотища
> Если-таки наберётесь мужества, - перед копированием из редактора кода переключите раскладку на русскую.

+100500

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.07.2011, 17:17
    #37371370
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
offИгорь ГорбоносА у меня такой симпатичный SAAB'чик показывает. Практически раритет!
Продается с мельницей и мельничихой
...
Рейтинг: 0 / 0
28.07.2011, 17:26
    #37371384
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
Игорь Горбонос,
ПОЛУОФФ:SAAB - на рисунке, рисунок НЕ в первой таблице, содержимое которой ТС якобы запрашивает...
...
Рейтинг: 0 / 0
28.07.2011, 17:42
    #37371431
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка 404
igor701,
если ещё интересно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
' начало Ваше процедуры, инициализация объектных переменных, etc ПОСКИПАНО
' NB! делать Excel видимым не надо

Dim k&, i&, s0$, MaxCardIndex&

s0 = "url;http://catalog.auto.ru/catalog/cars/card/"
MaxCardIndex =  10100  

With xl.Workbooks.Add.Worksheets( 1 )
With .QueryTables.Add(s0, .[A1])
    '.AdjustColumnWidth = True '<--излишество нехорошее
    '.RefreshPeriod = 0
    .WebSelectionType =  3  'xlSpecifiedTables==3
    .WebFormatting =  3  'xlWebFormattingNone==3
    .WebTables = "2" '<-- интересная таблица - _вторая_ на странице
    .MaintainConnection = False

    For i =  10012  To MaxCardIndex
        .Parent.Cells.Clear
        .Connection = s0 & CStr(i) & ".html"
        On Error Resume Next
        .Refresh BackgroundQuery:=False '<-- _СИНХРОННОЕ_ выполнение запроса
        k = Err.Number
        On Error GoTo  0 
        If k =  0  Then
            ds.AddNew
            ' parse querytable data, fill new record in recordset

            ds.Update
        Else
            ' do nothing
            ' or add url to 'blacklist'
            k =  0 
        End If
    Next i
End With
.Parent.Close False
End With
xl.Quit: Set xl = Nothing
ds.Close: Set ds = Nothing
End Sub
ЗЫ: и зачем Вам этот Excel с его QueryTable... Достаточно было бы ADO.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ошибка 404 / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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