【发布时间】:2020-04-04 21:50:50
【问题描述】:
我正在尝试以下代码,以便能够导出特定的 HTML 页面,但该网站需要凭据。这是我的尝试
Sub NewTest()
Const sURL As String = "https://courses.myexcelonline.com/courses/take/microsoft-teams/lessons/11482643-microsoft-teams-course-overview"
Dim http As MSXML2.XMLHTTP60, html As MSHTML.HTMLDocument
Set http = New MSXML2.XMLHTTP60
Set html = New MSHTML.HTMLDocument
Dim sUser As String, sPass As String
sUser = Application.WorksheetFunction.EncodeURL("myemail")
sPass = Application.WorksheetFunction.EncodeURL("mypass")
Dim postData As String
postData = "user%5Bemail%5D=" & sUser & "&user%5Bpassword%5D=" & sPass
With http
.Open "POST", sURL, False
.setRequestHeader "User-Agent", "Mozilla/5.0"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send postData
html.body.innerHTML = .responseText
ExportHTML .responseText
End With
Stop
End Sub
Sub ExportHTML(sInput As String)
With CreateObject("ADODB.Stream")
.Charset = "UTF-8"
.Open
.WriteText sInput
.SaveToFile Environ("USERPROFILE") & "\Desktop\OutputHTML.html", 2
.Close
End With
End Sub
我不知道我的代码有什么问题。我希望在我的桌面上存储特定的 HTML 页面,但是当我打开 HTML 页面时,我没有找到该页面,但找到了电子邮件和密码的凭据请求。
我更改了网址,这解决了我认为Const sURL As String = "https://courses.myexcelonline.com/users/sign_in" 的问题。但我需要知道如何从站点获取特定的 HTML 页面?
【问题讨论】:
-
您的 Excel 版本是多少?在我的版本中,我问是因为没有 WorksheetFunction.EncodeURL 函数。
-
非常感谢。我正在使用 Office 365。
标签: excel vba xmlhttprequest