Authentication 即使在身份验证之后,Power Query也会将登录表单作为结果集而不是内容返回

Authentication 即使在身份验证之后,Power Query也会将登录表单作为结果集而不是内容返回,authentication,https,powerbi,powerquery,Authentication,Https,Powerbi,Powerquery,我正在尝试刮取一个网站结果集,以创建一个包含该特定网站结果的表。在正常登录该网站时,我可以使用我的凭据访问该网站的内容。网站使用HTTPS 但是,当我试图通过power BI(以及更具体的power Query)检索同一网站的内容时,我会看到一个两列两行的结果集,就像该网站向我索要凭据一样: |--------------|-------------| | Username: | | |--------------|-------------| | Passwor

我正在尝试刮取一个网站结果集,以创建一个包含该特定网站结果的表。在正常登录该网站时,我可以使用我的凭据访问该网站的内容。网站使用HTTPS

但是,当我试图通过power BI(以及更具体的power Query)检索同一网站的内容时,我会看到一个两列两行的结果集,就像该网站向我索要凭据一样:

|--------------|-------------|
|  Username:   |             |
|--------------|-------------|
|  Password:   |             |
|--------------|-------------|
let
    Source = Web.Page(
        Web.Contents(
            "https://url.htm",
            [Query=
                [mNo ="1234",form name="overviewDetailsForm", id="overviewDetailsForm", method="post"
                ]
            ],
            [Content=Text.ToBinary()
            ]
        )
    ),
    Data0 = Source{0}[Data]
in
    Data0
这是在我输入凭据后,power query要求输入凭据(不返回任何错误输入错误)。凭证输入正确。输入错误凭据时,会出现错误

我已尝试了以下查询选项:

  • 直接输入所需的网站
  • 在M中带有查询和内容选项的高级输入将强制POST()而不是GET()
高级方法1-执行时显示登录表单:

let
    Source = Web.Page(
        Web.Contents(
            "https://url.htm",
            [Query=
                [mNo ="1234",form name="overviewDetailsForm", id="overviewDetailsForm", method="post"
                ]
            ]
        )
    ),
    Data0 = Source{0}[Data]
in
    Data0
方法2-出现错误,因为选项只能与匿名凭据一起使用:

|--------------|-------------|
|  Username:   |             |
|--------------|-------------|
|  Password:   |             |
|--------------|-------------|
let
    Source = Web.Page(
        Web.Contents(
            "https://url.htm",
            [Query=
                [mNo ="1234",form name="overviewDetailsForm", id="overviewDetailsForm", method="post"
                ]
            ],
            [Content=Text.ToBinary()
            ]
        )
    ),
    Data0 = Source{0}[Data]
in
    Data0

如果使用HTTP调试器,您应该能够检查浏览器在站点上发出的HTTPS请求。(您必须同意让Fiddler在您的计算机上安装根CA,以限制您的internet流量。)您的用户名/密码是否显示在“身份验证”或“标题”选项卡中

通常,您可以在
Web.Contents
中设置所需的任何标题,它们也可以与
Web.Page
一起使用,但请注意,某些身份验证令牌将随着时间的推移而过期


通过一些尝试和错误,您应该能够让Power Query发出与您的浏览器相同的HTTP请求,并且您将获得您的数据

如果使用HTTP调试器,您应该能够检查浏览器在站点上发出的HTTPS请求。(您必须同意让Fiddler在您的计算机上安装根CA,以限制您的internet流量。)您的用户名/密码是否显示在“身份验证”或“标题”选项卡中

通常,您可以在
Web.Contents
中设置所需的任何标题,它们也可以与
Web.Page
一起使用,但请注意,某些身份验证令牌将随着时间的推移而过期


通过一些尝试和错误,您应该能够让Power Query发出与您的浏览器相同的HTTP请求,并且您将获得您的数据

嗨,卡尔,谢谢你的见解。我尝试过fiddler,即使使用解密HTTPS流量,我的用户名和密码也不会出现在流量中。我不确定这是否是因为power query存储了我的凭据(因为它在连接时第一次请求凭据),并生成了令牌本身或其他原因。我会“摆弄”它,但如果你有更多的提示,那就太好了。如果你从你的浏览器查看流量,需要一些身份验证吗?它是使用cookie还是其他身份验证令牌?谢谢您的回复。老实说,我完全忘记了这个话题。这个问题还没有解决,将来也不会解决。我们试图解析的源使用了一些身份验证令牌,我们的客户不会授予我们访问应用程序的权限。我会把这条线合上的。嗨,卡尔,谢谢你的见解。我尝试过fiddler,即使使用解密HTTPS流量,我的用户名和密码也不会出现在流量中。我不确定这是否是因为power query存储了我的凭据(因为它在连接时第一次请求凭据),并生成了令牌本身或其他原因。我会“摆弄”它,但如果你有更多的提示,那就太好了。如果你从你的浏览器查看流量,需要一些身份验证吗?它是使用cookie还是其他身份验证令牌?谢谢您的回复。老实说,我完全忘记了这个话题。这个问题还没有解决,将来也不会解决。我们试图解析的源使用了一些身份验证令牌,我们的客户不会授予我们访问应用程序的权限。我会设法把这条线合上。