【问题标题】:Python3 Requests - Not WorkingPython3 请求 - 不工作
【发布时间】:2016-04-23 21:47:52
【问题描述】:

我想使用 Python 提交 POST 请求,最好是 Python3。 问题是,服务器必须以某种方式阻止请求(即使使用正确的标头和 cookie 等)。

要亲自查看,只需转到此链接,填写任何电话号码和电子邮件,然后点击提交。我希望复制这个,即使我需要使用 robobrowser 或其他东西(也不起作用)。

https://sprint-locator.safely.com/signupBasicInformation.htm

我也试过用 cURL 复制它,没有。

import requests

payload = {'email': 'admin%40dr.com', 'emailConfirm': 'admin%40dr.com', 'phoneNumber.areaCode': '302', 'phoneNumber.prefix': '750', 'phoneNumber.line': '1213'}
url='https://sprint-locator.safely.com/signupBasicInformation.htm'
r = requests.post(url, payload)
print(r.text)

【问题讨论】:

  • 所以您可以从表单提交请求,但不能从 cURL 或 Python/requests 提交?
  • @Dylan 请提供有效的 Sprint 电话(可能还有电子邮件?),因为我被重定向到 sprint-locator.safely.com/signUpAccountSuspended.htm
  • 我注意到,如果我使用有效的 Firefox 用户代理设置 User-Agent 标头,我会得到一个不同的页面,如果我不设置标头的话,如果这很有趣的话。跨度>
  • 我正在检查电话号码是否有效。当您提交带有随机数的表单时,它会让您进入一个错误页面,指出它是无效的。我会发布一个有效的号码,但这毫无意义。电子邮件:admin@dr.com 电话:302-750-1213 - 目标是得到“无效号码”错误。
  • sprint-locator.safely.com/signUpAccountSuspended.htm 这是目标,但是对于请求,我会被发送到不同子域上的登录页面。

标签: python python-3.x post curl python-requests


【解决方案1】:

出于安全原因(原文如此!),某些网站需要“适当的”User-agent,以过滤掉仅允许浏览器客户端的机器人(以及更多)。

import requests

headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0'}
payload = {'email': 'admin%40dr.com', 'emailConfirm': 'admin%40dr.com', 'phoneNumber.areaCode': '302', 'phoneNumber.prefix': '750', 'phoneNumber.line': '1213'}
url='https://sprint-locator.safely.com/signupBasicInformation.htm'
r = requests.post(url, payload, headers=headers)
print(r.text)

【讨论】:

  • 这是真的,我已经用用户代理对其进行了测试并得到了这里。问题是,所做的只是填写表格,而它从未提交。如果它工作正常,你会被发送到:sprint-locator.safely.com/signUpAccountSuspended.htm我真的很感谢你的时间@kwarunek
猜你喜欢
  • 1970-01-01
  • 2013-10-10
  • 2014-08-03
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
相关资源
最近更新 更多