【问题标题】:Golang web scraper NTLM authenticationGolang 网络爬虫 NTLM 身份验证
【发布时间】:2016-11-08 13:48:22
【问题描述】:

Golang 网络爬虫需要从经过 NTLM 身份验证的网页中提取信息。

拥有有效的用户名和密码,网络爬虫如何与服务器执行 NTLM 4 次握手以访问受保护的网页?

url, username, password := "http://www.some-website.com", "admin", "12345"

client := &http.Client{}
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "NTLM")
res, _ := client.Do(req)

【问题讨论】:

    标签: authentication go web-scraping ntlm


    【解决方案1】:

    在开始抓取之前,您可以使用 Azure/go-ntlmssp 之类的包进行身份验证。

    url, username, password := "http://www.some-website.com", "admin", "12345"
    
    client := &http.Client{
        Transport: ntlmssp.Negotiator{
            RoundTripper:&http.Transport{},
        },
    }
    
    req, _ := http.NewRequest("GET", url, nil)
    req.SetBasicAuth(username, password)
    
    res, _ := client.Do(req)
    

    【讨论】:

    • @John 我尝试了相同的代码,但它对我不起作用,现在问题是有时会发生身份验证,有时不会发生,请建议
    • @VijayKumar 我没有在示例代码中提供错误处理。尝试检查错误以查看问题所在。
    • @JohnSPerayil 错误说 401 未经授权,它是一个 https 域。我们是否需要为 https 域修改任何内容
    • @VijayKumar HTTPS 应该不是问题,除了服务器返回未经授权。但是需要更多细节来调试问题,因为你说它只是有时发生。此评论框不适合讨论它,因此请在 SO 上创建一个包含更多详细信息的问题,或在 chat.stackoverflow.com 上创建一个房间并邀请我,以便我们讨论它。
    • @JohnSPerayil 我已经创建了一个群并邀请你加入,请加入
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多