Для проекта мне нужна небольшая программа, которая автоматически заполняет названия компаний и бизнес-адреса продавцов Amazon в электронной таблице Excel. Программа использует ASIN-коды для перехода на соответствующий Amazon-сайт и нажатия на профиль продавца. Теперь он должен очистить страницу для всей необходимой информации и скопировать соответствующие строки в таблицу Excel. Однако время от времени я получаю сообщение «Ошибка 70: доступ запрещен». Когда я использую функцию отладки и вручную прохожу каждую строку кода, возникает ошибка с гораздо меньшей вероятностью. Ошибка возникает непреднамеренно, но может быть воспроизведена, когда вы просто запускаете код.
К сожалению, я абсолютно не понимаю, когда речь заходит о Visual Basi c. Я собрал необходимые фрагменты кода с различных веб-сайтов и скопировал его так, чтобы он (несколько) работал. Я прошу прощения, если я полностью уничтожил этот код.
Я мало знаю о VB, чтобы самостоятельно решить эту проблему. Было бы здорово, если бы кто-нибудь из вас помог мне. Заранее благодарим вас за ваше время и усилия:).
Здесь вы можете найти три примера ASIN-кодов generi c amazon-products для самостоятельного запуска программы.
Пример -ASIN-коды:
B0753VDT2N
B07RZ2Z524
B07NRMWZC8
'start a new subroutine called SearchBot
Sub SearchBot()
'dimension (declare or set aside memory) for our variables
Dim objIE As InternetExplorer 'special object variable representing the IE browser
Dim aEle As HTMLLinkElement 'special object variable for an <a> (link) element
Dim counter As Integer 'integer variable to count through our ASINS'
Dim link As String 'link to the items amazon-page'
Dim linkPrefix As String
linkPrefix = "https://www.amazon.de/dp/"
'Counter for the rows in our spreadsheet'
counter = 2
'Repeat until every ASIN-Code has been dealt with'
Do Until Sheets("Sheet1").Range("A" & counter).Value = ""
'initiating a new instance of Internet Explorer and asigning it to objIE
Set objIE = New InternetExplorer
objIE.Visible = False
link = linkPrefix + Sheets("Sheet1").Range("A" & counter).Value
objIE.navigate link
'wait here a few seconds while the browser is busy
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
'click the 'Seller Profile' button'
objIE.document.getElementById("sellerProfileTriggerId").Click
'wait again for the browser
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
'for each <a> element in the collection of objects with class of 'a-list-item'...
For Each aEle In objIE.document.getElementsByClassName("a-list-item")
'Geschäftsname --> Business name'
'Here the Error (#70) occurs: Access denied'
If InStr(aEle.innerText, "Geschäftsname:") > 0 Then
aEle.innerText = Mid(aEle.innerText, 15)
Sheets("Sheet1").Range("B" & counter).Value = aEle.innerText
End If
'Geschäftsadresse --> Business address'
If InStr(aEle.innerText, "Geschäftsadresse:") > 0 Then
aEle.innerText = Mid(aEle.innerText, 18)
Sheets("Sheet1").Range("C" & counter).Value = aEle.innerText
'After the Business address has been added to the spreadsheet, it would be'
'great if the program jumps to the next ASIN-Code'
End If
'repeat times the # of ele's we have in the collection
Next
'close the browser
objIE.Quit
'Jump to the next line in our spreadsheet'
counter = counter + 1
Loop
'exit our SearchBot subroutine
End Sub