我正在尝试使用我的用户名和密码登录网站,转到报告页面,选择条件并下载报告。我正在尝试使用请求自动执行此操作。
到目前为止,我有:
report_page_url = 'http://url......'
signin = {username, password}
data = {
'from_day': '1',
'from_month': '3',
'from_year': '2016'}
with requests.Session() as s:
s.post(login_url, data=signin)
download = s.post(report_page_url, data=data)
我可以使用第一篇文章登录网站,并下载报告页面的页面内容。
但是,每次我在报告页面上执行request.post并传入params填写表单时,它会将我重定向到包含错误消息的页面:
您正在尝试修改来自似乎不是来自FreePBX页面链接或按钮的URL的设置。如果你这可能会发生 手动输入以下网址。此操作已被阻止,因为 HTTP_REFERER与您当前的SERVER不匹配。如果您需要 此访问权限,您可以在Advanced中设置Check Server Referrer = false 用于禁用此安全检查的设置。
无论如何都要绕过它?
谢谢!
答案 0 :(得分:2)
听起来他们实际上正在检查HTTP_REFERER
并拒绝来自外国地方的帖子。尝试在请求中添加http_referer
标头,例如:
s.headers.update({'referer': my_referer})
你需要弄清楚他们期望在my_referer
中看到什么价值。可能只是他们自己的域名。