首页 > 解决方案 > 无法获取页面python的html

问题描述

因此,过去 3 天我一直在尝试解决此问题,但不知道为什么。我正在尝试访问需要先登录的该站点的 html。

我尽我所能尝试了所有方法,但都遇到了同样的问题。

这是我尝试过的:

response = requests.get('https://de-legalization.tlscontact.com/eg/CAI/myapp.php', headers=headers, params=params, cookies=cookies)
print(response.content)
payload = {
    '_token': 'TOKEN HERE',
    'email': 'EMAIL HERE',
    'pwd': 'PASSWORDHERE',
    'client_token': 'CLIENT_TOKEN HERE'
}

with requests.session() as s:
    r = s.post(login_url, data=payload)
    print(r.text)

我也尝试使用 URLLIB,但它们都返回:

<script>window.location="https://de-legalization.tlscontact.com/eg/CAI/index.php";</script>

任何人都知道为什么会这样。这里也是我想要的html页面的url: https ://de-legalization.tlscontact.com/eg/CAI/myapp.php

标签: pythonhtmlpython-requestspython-requests-html

解决方案


您会看到这个特定的输出,因为它实际上是您正在下载的页面的内容。

您可以通过打开以下网址在 chrome 中对其进行测试:

view-source:https://de-legalization.tlscontact.com/eg/CAI/myapp.php

这是它在 Chrome 中的样子:

在此处输入图像描述

发生这种情况是因为您被页面上的 javascript 代码重定向。

由于您尝试访问的页面需要登录,因此您无法仅通过向内部页面发送 http 请求来访问它。

您要么需要提取所有 cookie 并将它们添加到 python 脚本中。或者您需要使用像 Selenium 这样的工具,它允许您从 Python 代码控制浏览器。

在这里,您可以找到如何从浏览器会话中提取所有 cookie:

如何在谷歌浏览器中复制 cookie?

在这里您可以找到如何在 Python 中将 cookie 添加到 http 请求:

import requests

cookies = {'enwiki_session': '17ab96bd8ffbe8ca58a78657a918558'}

r = requests.post('http://wikipedia.org', cookies=cookies)

推荐阅读