You don't have permission to access /
on this server.
1.我直接用浏览器是可以正常打开浏览的(只要连接到公司内部的网络,就可以打开,不需要登录域帐号)
2.然后我用 Postman 去 GET https://server_address 也能够成功 (我没有设置任何 header,只是填写了 server 地址,然后“发送”)
3.接着,在 postman 里面,能够拿到发送的信息,然后,postman 有个功能,可以直接转换成代码。里面有个是 python 的,我就转换了。
4.把转换后的代码,放到我的 python 脚本里面
结果就是上面的这个 403 提示了。 这个是咋回事儿呢? 难道我需要提供 username/password ?可是我浏览这个网站时,没有这些啊?
5.postman 还可以转换成 curl 的命令行( cur -X GET ......),我试了一下,居然也可以成功拿回 html 的完整内容。就是在 python 中不行。
谢谢!
问题解决了,还是使用requests,在header里面添加了 user-agent,模拟Mozila 5.10 例如:
headers = {
'User-agent': "Mozilla 5.10",
'cache-control': "no-cache",
'postman-token': "220d2989-c111-fea3-874f-f5c31111db49"
}
1
hotsun168 2018-04-05 22:57:57 +08:00 via iPhone
有没有可能是 useragent 识别。
|
2
owlsec 2018-04-05 23:25:51 +08:00
贴代码吧。。。
|
3
eluotao 2018-04-05 23:49:35 +08:00 via iPhone
postman 可以,那就是你代码问题了
|
4
Molita 2018-04-06 01:47:02 +08:00 via Android
agent 头 识别 把比如 requests 这类的 ban 了?
|
6
zhchyu999 2018-04-06 05:46:54 +08:00 via Android
抓包看结果
|
7
shootsoft 2018-04-06 06:11:33 +08:00 via iPhone
内网有的会看 cookie,建议问问 IT
|
8
eastrd 2018-04-06 06:21:51 +08:00 via Android
建议你直接用 Selenium 模块来模拟浏览器访问网页,这样就不需要手动模拟各种 request headers 了。先从 chrome webdriver 开始,最后 phantomjs
|
9
yazoox OP @zhchyu999 兄弟
你说的抓包是说用什么 fiddle,鲨鱼 shark 这类工具么?不会…… |
10
hotsun168 2018-04-06 08:31:00 +08:00 via iPhone
@yazoox 我很早之前有用过一个叫 smartsniff 的工具,抓包的,分别正常浏览器打开网页,和用你的代码打开网页,对比抓到的包内容的区别。
|
11
ZoomQuiet 2018-04-06 08:48:56 +08:00 via iPhone
是也乎 ╮(╯▽╰)╭
能用 cURL ? 那就用 py 调 cURL 通过 pipe 获得数据啊啊啊啊啊啊啊啊… python 是胶水…不是白胶的~ |
12
mianju 2018-04-06 10:04:25 +08:00
|
13
ciensoledad 2018-04-06 12:20:47 +08:00 via Android
之前遇到过类似的 分析之后用了 requests_ntml 解决了登陆问题
|