Опитвам се да намеря начин да използвам IE в моя VBA код за достъп до моите портфолиа в finance.yahoo.com, но получавам същото съобщение, използвайки soap/rest? формат, както правя аз, когато отворя прозорец на IE: „Някои части от тази страница не се поддържат от текущата ви версия на браузъра. Моля, надстройте браузъра до най-новата.“ Изглежда, че новите ми обаждания също се обработват от IE. Вярно ли е? Има ли начин да се заобиколи това?
Опитах се да използвам Selenium, за да отворя Firefox, но той не работи с текущата версия на Firefox (67)
ето кода, който използвам сега:
Dim xmlhttp As new MSMXML2.XMLHTTP60
Dim WebPgDoc As New HTMLDocument
Dim objNode As object
With xmlhttp
.Open "GET", "https://finance.yahoo.com/portfolio/pf_14/view/view_18", False
.send
WebPgDoc.body.innerHTML = .responseText
End With
Set objNode = WebPgDoc.getElementsByTagName("div")
Когато гледам objNode(70).innertext, той има същото съобщение за грешка и липсващи подробности за акциите, както когато използвам код за отваряне на IE, за да отворя портфолиото.
Всякакви идеи ще бъдат високо оценени. Благодаря
IXMLHttpRequest
, доставен с VBA, използва HTTP машината от Internet Explorer, така че е много вероятно да получите същата грешка. 2) Подобно съобщение за грешка ме кара да мисля, че интерактивен компонент (напр. JavaScript) трябва да изгради уеб страницата, преди да видите резултатите. В този случай вие не използвате API на Yahoo!, а просто се опитвате роботизирате това, което виждате на екрана. Yahoo предлага няколко безплатни API, вместо това трябва да ги атакувате. - person Matteo NNZ   schedule 10.06.2019XmlHttpRequest
в url на API е напълно независимо от браузъра, тъй като изисквате данни към специална крайна точка и те се връщат директно в JSON (или XML за много стари API). От друга страна, тук изисквате данни към URL адрес на уеб страница и така ще получите HTML в отговор и този HTML може да не е изграден изцяло от JavaScript, акоXMLHTTP
сървърът (Internet Explorer за версията на VBA) не поддържа че. - person Matteo NNZ   schedule 10.06.2019