当前位置: 首页 > 知识库问答 >
问题:

用于登录网站的Excel web查询

唐阳飙
2023-03-14

我在寻找一个宏/vba代码登录到一个有密码保护的网站,我在网站上有两个密码。我有一些使用internet explorer进入网站的代码,但它不能检索数据,web查询浏览器没有登录,我只登录了internet explorer而没有登录excel web查询浏览器,因为我不能使用我已经创建的web查询连接刷新或更新excel中的数据。

Sub WebLogin()
Dim a As String
Set IE = CreateObject("InternetExplorer.Application")
With IE
    .Visible = True
    .Navigate "https://newtrade.sharekhan.com/rmmweb/login/LoginPage.jsp"
    Do Until .ReadyState = 4
        DoEvents
    Loop
    .Document.all.Item("loginid").Value = "myuserid"
    .Document.all.Item("brpwd").Value = "password1"
    .Document.all.Item("trpwd").Value = "password2"
    .Document.forms(0).submit
End With
IE.Quit
End Sub

那么有没有办法从使用 Internet Explorer 更改为使用此代码并使用 excel Web 查询浏览器,以便它可以自动登录,我只需要刷新已经添加到我的 excel 工作表中的 Web 的外部连接?

P.S我在windows 10上使用Excel 2016 64位版本。

共有2个答案

李昱
2023-03-14

您可以使用此概念登录(几乎)任何网站。

Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Sub Login_2_Website()

Dim oHTML_Element As IHTMLElement
Dim sURL As String

On Error GoTo Err_Clear
sURL = "https://www.google.com/accounts/Login"
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
oBrowser.timeout = 60
oBrowser.navigate sURL
oBrowser.Visible = True

Do
' Wait till the Browser is loaded
Loop Until oBrowser.readyState = READYSTATE_COMPLETE

Set HTMLDoc = oBrowser.Document

HTMLDoc.all.Email.Value = "sample@vbadud.com"
HTMLDoc.all.passwd.Value = "*****"

For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
Next

' oBrowser.Refresh ' Refresh If Needed
Err_Clear:
If Err <> 0 Then
Debug.Assert Err = 0
Err.Clear
Resume Next
End If
End Sub
终翰学
2023-03-14

您需要在登录后获取cookie,以便在以下请求中向网络服务器表明自己的身份。您将始终需要先登录并从浏览器中获取该变量。

使用您发布的代码登录后,抓取您需要的cookie(尝试在浏览器的开发人员工具中使用网络记录器在IExplorer中重新创建您尝试做的事情。然后,您可以在关闭IE后,在HTTP Post请求中将这些cookie传递给服务器。

 类似资料:
  • 问题内容: 使用Jsoup登录网站需要什么?我相信我的代码是正确的,但是我从未使用Jsoup成功登录到网站,因此我可能会丢失一些东西。这是我的代码: 返回一个显示未成功登录的登录页面。有一个名为的输入值,我认为这可能是为什么它不起作用的原因。这个值会随着时间的推移而上升。我运行了两次代码,时间变量返回了和。我的代码需要大约10秒钟的时间来打印文档,因此,变量在发送发布请求时是否已经更改?我不确定这

  • 问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper

  • 问题内容: 我正在尝试使用Python登录到此页面。 我尝试使用另一篇文章中描述的步骤,并获得了以下代码: 但这给了我以下输出: 我究竟做错了什么? 问题答案: 我建议使用精彩的模块。 下面的代码将使您登录到该站点,并在会话期间将cookie保留下来。

  • 问题内容: 我想用Java登录到一个网站。我使用的是org.apache.http,我已经写了 尽管我仍然无法登录,但它正确发送了我测试过的帖子表格。我要登录的网站是http://www.xtratime.org/forum/ 关于此的任何想法或是否有其他方法? 问题答案: 在提交页面之前,请对密码进行编码()。您应该在代码中执行相同的操作。 该属性的值与您的代码()不匹配。您应该将发布请求发送到

  • 问题内容: 我正在尝试从此站点http://cheese.formice.com/maps/@5865339获取信息,但是当我请求使用urllib.urlopen时,它说我需要登录,我正在使用此代码: 我做错了什么? 问题答案: 它不是直接使用,但是您可能会发现使用该包更容易。有一个对象看到这个答案 这将使您登录到该站点。您可以通过以下方式进行验证: 登录后,您可以调用所需的特定网址。

  • 我正试着从下面的网站刮取一些信息。我是新来的,所以不完全了解正在发生的事情。我基本上是从我在互联网上找到的各种例子中获取信息,我正在使用selenium和python来帮助我导航到页面,从那里我可以刮取一些信息,我使用了下面的脚本,我可以导航到主页,关闭cookies并点击登录。此时,将弹出一个用于输入用户id和密码的弹出窗口div元素未被识别,每次我得到的错误是不存在这样的元素时,我添加了具有预