我在业余时间担任自由编辑,但最近我工作的公司使他们的通知系统变得更糟,导致我错失了很多机会。我决定尝试创建一个简单的python脚本来每分钟左右拉网站,检查特定字段的更改,并发送电子邮件到专用帐户通知我。我从来没有使用过python,但我陷入困境,发现最好的选择可能是requests
库。但是,我很难通过身份验证获得正确的页面,因为我的所有请求都会导致登录页面。
该网站的工作原理如下(如果被标记为垃圾邮件,我会错过TLD):
我尝试了以下内容:
requests.get('https://whiteboard.cactusglobal.com/dashboard', auth=('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请求知之甚少,因此我无法掌握这些知识。问题有效。谢谢您的帮助。
答案 0 :(得分:0)
对我而言,它与python
或HTTP请求无关。
网站whiteboard.cactusglobal
不是API,而是网站。
它并不意味着您只能以编程方式访问其页面。它希望真正的用户能够通过它的浏览器与它进行交互。
对我而言,您需要的工具是Selenium。或者任何用户测试自动化工具。这种工具可以让你模仿进入网站的浏览器,被重定向到日志页面,并在相关领域输入验证信息,所有这些都在Python中。
由于您的用例是基本的,如果您了解基本教程,特别是如何填写表单,您将很容易找到自己的方式:)