python - 无法获取页面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
解决方案
您会看到这个特定的输出,因为它实际上是您正在下载的页面的内容。
您可以通过打开以下网址在 chrome 中对其进行测试:
view-source:https://de-legalization.tlscontact.com/eg/CAI/myapp.php
这是它在 Chrome 中的样子:
发生这种情况是因为您被页面上的 javascript 代码重定向。
由于您尝试访问的页面需要登录,因此您无法仅通过向内部页面发送 http 请求来访问它。
您要么需要提取所有 cookie 并将它们添加到 python 脚本中。或者您需要使用像 Selenium 这样的工具,它允许您从 Python 代码控制浏览器。
在这里,您可以找到如何从浏览器会话中提取所有 cookie:
在这里您可以找到如何在 Python 中将 cookie 添加到 http 请求:
import requests
cookies = {'enwiki_session': '17ab96bd8ffbe8ca58a78657a918558'}
r = requests.post('http://wikipedia.org', cookies=cookies)
推荐阅读
- macos - 如何在 MacOS 和/或 UWP 的 Xamarin.Forms 按钮上实现悬停事件?
- python - IntelliJ/PyCharm 只为同一文件中的定义提供智能感知建议
- javascript - 网页上不同 div/span 的不同选择颜色
- javascript - 我不能使用 Node.JS 调用在另一个函数中创建的函数
- reactjs - 如何等待来自嵌套请求的 React 评估值?
- asp.net-core - 只有在 AspNetUsers 上的“EmailConfirmed”字段为真(NETCORE 3.1)时,具有有效凭据的用户才能登录
- django - Django Rest Framework 中的自定义字段验证
- python - tolist的numpy数组非常慢
- php - CakePHP 4 JSON 列值查找或设置别名
- react-native - 在 React Native 应用程序中使用的 SignalR npm 包