【问题标题】:Python mechanize form authentication errorPython机械化表单身份验证错误
【发布时间】:2013-08-29 21:26:26
【问题描述】:

我正在尝试在 Sharepoint 网站上自动填写表单,但我的 Python 脚本无法通过此身份验证框,当您从下方输入 url 时会弹出此框。

from base64 import b64encode
import mechanize

url = 'http://moss.micron.com/MFG/ProbeTest/Lists/Manufacturing%20Requests/AllItems.aspx'
username = 'username'
password = 'password'

# I have had to add a carriage return ('%s:%s\n'), but
# you may not have to.
b64login = b64encode('%s:%s' % (username, password))

br = mechanize.Browser()

br.addheaders.append( 
  ('Authorization', 'Basic %s' % b64login,  )
)

br.open(url)!

这会导致以下错误:

编辑:

这是在请求的页面上运行wget 的结果。

--2013-08-30 11:16:17--  http://moss.micron.com/MFG/ProbeTest/Lists/Manufacturing%20Requests/AllItems.aspx
Resolving moss.micron.com... 137.201.88.118
Connecting to moss.micron.com|137.201.88.118|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 401 Unauthorized
  Server: Microsoft-IIS/7.0
  WWW-Authenticate: Negotiate
  WWW-Authenticate: NTLM
  X-Powered-By: ASP.NET
  MicrosoftSharePointTeamServices: 12.0.0.6341
  Date: Fri, 30 Aug 2013 17:16:17 GMT
  Connection: keep-alive
  Content-Length: 0
Authorization failed.

【问题讨论】:

  • 请使用错误输出,即文本,而不是屏幕截图用于文本错误输出...
  • @Mark Kennedy,您是否设法解决了这个问题?我面临着完全相同的问题!

标签: python authentication forms-authentication mechanize


【解决方案1】:

您的浏览器尊重您网站上的 robots.txt 禁止它。

在通过以下方式发出请求之前,您可以将 mechanize.Browser 设置为忽略 robots.txt: br.set_handle_robots(False)

或者,编辑您的 robots.txt 以允许这种连接。

如果您在 mechanize.Browser 中设置自定义 UserAgent 标头以允许您对其进行过滤。

有关 robots.txt 的基本信息,请参阅 here

【讨论】:

  • 进行该更改后,我收到一个新错误:HTTP Error 401: Unauthorized
  • 我确定我的用户名/密码组合是正确的。这是因为我正在尝试连接到 Sharepoint 网站吗?
  • 我认为它确实对试图在没有 UserAgent 标头的情况下访问它的浏览器进行了某种过滤。
  • 也许尝试使用内置函数进行http auth? br.add_password('http://safe-site.domain', 'username', 'password')
  • @DivinuxVox 我之前已经尝试过。我还尝试添加以下内容。仍然得到同样的错误br.addheaders(['User-agent', 'Mozilla/20.0)')]
【解决方案2】:

如果您可以使用 PC 访问该站点,请下载 Fiddler2,它可以让您在登录时查看所需的交易。

编辑.. 好的。显然你有一台电脑。

【讨论】:

  • 我运行了wget 命令。 WWW-Authenticate 值似乎在向我跳跃。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2013-10-30
  • 1970-01-01
相关资源
最近更新 更多