python - Apache 403代码与python解析

标签 python apache https

我想用python解析https站点。

import requests

url = 'https://example.com/wap/auth/?serviceId=121&returnUrl=https://example.com'

headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate, sdch',
    'Accept-Language': 'en-US,en;q=0.8,ru;q=0.6,de;q=0.4,sr;q=0.2',
    'Connection': 'keep-alive',
    'DNT': '1',
    'Host': 'example.com',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/47.0.2526.73 Chrome/47.0.2526.73 Safari/537.36',
}

response = requests.get(url, verify=False, headers=headers)

print response.text

答案:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /wap/auth/
on this server.</p>
<hr>
<address>Apache Server at example.com Port 443</address>
</body></html>

但是此链接在浏览器中正常打开,带有 200 http 代码,无需重定向。 url 和 headers 从浏览器复制到 python 脚本。 python 脚本中没有重定向。没有代理。浏览器和 python 脚本正在我的计算机上运行(linux mint 17)。

为什么 apache 禁止了我的脚本并且可以在浏览器中正常工作?是否可以从 python 脚本发出此请求?

注意:域名已更改为 example.com

最佳答案

虽然我不太确定 urllib 的问题是什么......我可以建议一个替代方案。使用 Selenium

Selenium 可以像 Firefox 所看到的那样加载页面。它基本上使用 firefox 的加载器并加载页面,包括 JS 等 - 使自动化任务更加容易。

from selenium import webdriver
url = 'http://login.tele2.ru/ssotele2/wap/auth/'
driver = webdriver.Firefox()
driver.get(url)
print driver.page_source

关于python - Apache 403代码与python解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34628754/

相关文章:

python - 在没有辅助类的 Python Pylons Controller 中处理和显示错误的最简单方法

php - 403 禁止 : You don't have permission to access

apache - 将 HTTP 重定向到 HTTPS :PORT in Tomcat

ssl - 使用 https 和 TLS 保护 Kubernetes 集群中的内部服务通信

ssl - 确认 CloudFlare 和源服务器之间的流量已加密

python - 是否可以在 django admin 中实现 "change password at next logon"类型的功能?

python - 模棱两可的系列的真值

python - 使用延迟屏幕空间贴花系统的边界检查问题

apache - 许多 Apache 进程生成速度非常快,最多可在 3 分钟内达到极限

java - tomcat不支持major.minor版本52.0