【问题标题】:Get source code of website with Python without being redirected?使用 Python 获取网站源代码而不被重定向?
【发布时间】:2021-08-10 13:50:36
【问题描述】:

我正在尝试获取网站的源代码:“https://004.lmvz.ch/disdonc/block/5d3f06e7f323590019034257/test?identifier=004lmvzch-disdonc-5d3f06e7f323590019034257&identifier=004lmvzch-disdonc-5d3f09034e”004 .但如果我在请求中尝试:

import requests
url = "https://004.lmvz.ch/disdonc/block/5d3f06e7f323590019034257/test?identifier=004lmvzch-disdonc-5d3f06e7f323590019034257&identifier=004lmvzch-disdonc-5d3f06e7f323590019034257"
print(requests.get(url).text)

但它返回登录页面的源代码:“https://login.lmvz.ch”,所以我想我被重定向了。我怎样才能绕过这个?我试过了:allow_redirects=False,但还是不行。

您好, 戴夫

【问题讨论】:

  • 您可能需要使用 post 而不是 get,并添加额外的数据,例如 cookie,
  • @FilipMłynarski 我试过了,但它加载了一个网页,上面写着“MethodNotAllowedHttpException”
  • @Carcigenicate 它在响应选项卡中给了我网页的源代码

标签: python-3.x redirect python-requests


【解决方案1】:

因为它需要认证信息,如果你不提供,网站会自动重定向到登录页面。

解决方案:

  1. 使用有效凭据登录
  2. 获取认证会话信息
  3. 将身份验证信息添加到请求的标头(在 cookie 中)。

查看:How to send cookies in a post request with the Python Requests library?

【讨论】:

  • 这导致我进入一个页面,上面写着:MethodNotAllowedHttpException as title
  • 您是否尝试将 GET 更改为 POST?请阅读我的回答,我没有建议你这样做。只需登录(手动),将正确的 cookie 复制到 python 中的 GET 请求。
猜你喜欢
  • 2017-01-26
  • 2017-12-24
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多