【问题标题】:Get url of a page after redirecting in Python在Python中重定向后获取页面的url
【发布时间】:2013-08-28 09:55:39
【问题描述】:

我有一个网址:

https://www.facebook.com/dialog/oauth?client_id=559149457475028&redirect_uri=https://calm-refuge-2106.herokuapp.com/&scope=publish_stream

它使用 url 重定向到另一个页面:

https://calm-refuge-2106.herokuapp.com/?code=AQAoBPyS4lKynHM4lylFHChFyO775T-49A1j8DbTGO9iiyoKnkDv0naSWMSvJ26ISt50fTUGcYH8QfUdLwt4sLBQ9noNmBCuUsze4rVSjxCcJ1pbfcLpfy2OyLB5DMg7sOWr_q5dEHNEd9eXoeRepmjFDU7GyEUx6WrjDtIOcusH4prnPGhQ2gHopJC54AeflMC9bh6fP2R6OhAJhVCVMHNvIT2wwTB8DG46yoRP1GAqN-d2vm8RwOC93vY-Xv_HvGQKwhRxbpVlk2vWTMQ40F1rbaw_zJNz7oBtz7qDUQkxI3RcE6dWw5GEzPcFMFuD1jw#_=_

我只需要获取代码查询。

当我使用 urllib.urlopen 打开 url,然后使用 geturl 方法返回类似文件的对象时,它返回如下内容:https://www.facebook.com/login.php?skip_api_login=1&api_key=559149457475028&signed_next=1&next=https%3A%2F%2Fwww.facebook.com%2Fdialog%2Foauth%3Fredirect_uri%3Dhttps%253A%252F%252Fcalm-refuge-2106.herokuapp.com%252F%26scope%3Dpublish_stream%26client_id%3D559149457475028%26ret%3Dlogin&cancel_uri=https%3A%2F%2Fcalm-refuge-2106.herokuapp.com%2F%3Ferror%3Daccess_denied%26error_code%3D200%26error_description%3DPermissions%2Berror%26error_reason%3Duser_denied%23_%3D_&display=page

这显然不是我想要的。

如何在 Python 中重定向后获取 url?

【问题讨论】:

  • https://www.facebook.com/login.php 我会说这是 Facebook 登录页面的 url。您的 GET 请求未经过身份验证。
  • 什么意思?我在 Facebook 上登录。
  • 是的,您在浏览器中登录了 Facebook,但您的 python 应用程序不使用存储在浏览器中的身份验证信息。您需要在 Python 应用程序中登录 Facebook,保存有关登录的 cookie 信息,然后使用此信息访问网页。
  • 我尝试使用 pyfb 库来实现这项工作。但是我需要手动传递访问令牌的问题。如何在这个应用程序中具体验证 python?

标签: python url


【解决方案1】:

试试urllib2.HTTPRedirectHandler

【讨论】:

  • 本帖还提到了HTTPRedirectHandler:stackoverflow.com/questions/4902523/…
  • urllib2 没有帮助。每次它给出相同的网址。我不明白在这种情况下如何使用 HTTPRedirectHandler。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 2018-05-06
  • 2021-08-09
  • 2023-01-30
  • 1970-01-01
  • 2014-01-23
相关资源
最近更新 更多