通过请求从受密码保护的网站获取数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过请求从受密码保护的网站获取数据相关的知识,希望对你有一定的参考价值。
我在业余时间担任自由编辑,但最近我工作的公司使他们的通知系统变得更糟,导致我错失了很多机会。我决定尝试创建一个简单的python脚本来每分钟左右拉网站,检查特定字段的更改,并发送电子邮件到专用帐户通知我。我从来没有使用python,但我陷入困境,发现最好的选择可能是requests
库。但是,我很难通过身份验证获得正确的页面,因为我的所有请求都只是导致登录页面。
该网站的工作方式如下(如果被标记为垃圾邮件,我会错过TLD):
- 该员工前往whiteboard.cactusglobal
- 他们登录并发送到whiteboard.cactusglobal / dashboard,其中包含我想要阅读的字段。
我尝试过以下方法:
requests.get('https://whiteboard.cactusglobal.com/dashboard', auth=('user','pass'))
其中user和pass被替换为适当的值,但没有骰子。我也试过了
requests.get('https://whiteboard.cactusglobal.com/dashboard', auth=HTTPDigestAuth('user','pass'))
没有帮助,而且
payload = {'user':'XXXXXXXX', 'pass':'XXXXXXX'}
requests.post('https://whiteboard.cactusglobal.com/dashboard', data=payload})
哪些仍然无效。如上所述,所有请求都给出403并返回登录页面。
我使用Burp从我的浏览器中获取我的登录详细信息来捕获POST
请求,希望它可以解释这个问题,但我不知道requests
如何做任何事情。这是请求(删除了cookie):
POST /dashboard?destination=dashboard HTTP/1.1
Host: whiteboard.cactusglobal.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://whiteboard.cactusglobal.com/
Content-Type: application/x-www-form-urlencoded
Content-Length: 125
Connection: close
Upgrade-Insecure-Requests: 1
name=XXXXXXXX&pass=XXXXXXXXXX&form_build_id=XXXXXXXXXX&form_id=XXXXXXXXXXXXX
如果我能更好地理解它,我很遗憾地寻求帮助,可以很容易地用Google搜索,但由于我对python缺乏了解并且对HTTP请求的了解很少,因此我能够有效地掌握问题有太多未知数。谢谢您的帮助。
对我而言,它与python
或HTTP请求无关。网站whiteboard.cactusglobal
不是API,它是一个网站。它并不意味着您只能以编程方式访问其页面。由于其浏览器,它希望真正的用户与之交互。
所以对我来说,你需要的工具是Selenium。或者任何用户测试自动化工具。这种工具将允许您模拟访问网站的浏览器,重定向到日志页面,并在相关字段中输入验证信息,所有这些都在Python中。
由于您的用例是基本的,如果您了解基本教程,特别是如何填写表单,您将很容易找到自己的方式:)
以上是关于通过请求从受密码保护的网站获取数据的主要内容,如果未能解决你的问题,请参考以下文章
VBA WinHTTP 从受密码保护的 https 网站下载文件
如何从受保护的文件夹中使用PHP和AJAX提供安全的文件下载?