特定站点在 python 和 chrome 中返回不同的响应

A specific site is returning a different response on python and in chrome

我正在尝试使用 python 访问特定站点, 而且无论我使用哪个库,我似乎都无法访问它。

我试过Selenium+PhantomJS,我试过requests和urllib。

每当我尝试从浏览器访问站点时,我都会得到一个 json 文件,每当我尝试从 python 脚本访问它时,我都会得到一个 html 文件(其中有一个巨大的缩小脚本)

我怀疑该站点检测到我正在无头发送请求并阻止我的请求,但我不知道如何阻止。

网址为: http://www.yesplanet.co.il/presentationsJSON

如果有人能指出正确的方向,我将不胜感激。 谢谢!

编辑: 这是我的硒代码:

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://www.yesplanet.co.il/presentationsJSON")
source = driver.page_source

此时我打印源代码,发现它不是我所期望的。

这里是一个同样不起作用的请求实现:

import requests
res = requests.get("http://www.yesplanet.co.il/presentationsJSON")
source = res.content

这里也是一样..

如果我设置一堆 headers 包括发送 cookie,它对我有用。

curl -H "Cookie:rbzid=d29SMXE1Rktrdm5kS2x0YW5EdVZwUzNpYVhWdUlJSndlVzEvUU9vWG5OU2dRSVNnWTc3TWYwaHN4V2REVGJyNFBMSFl1bXErMGFLNXNtUGxVb0ZwS3dVRDRhajEwczFMMmE3cUc1blBmaTEzeFZFWGhrbHgrUXhNeHRhZnhWNjBib1pTenM5bjFvOUhVRVoxOTNGRHBYQXQwVzVsYXdSSXliME5LeUZjU0Rhb2tHa09ycUNVYmJyOUVjMERJN3daaUlFUGhwUHpvT0dDblcwU0wwMEM3NlJZRGw1K1pXZ2NKNkJRTWhvNUtaZz1AQEAxOTVAQEAtNjY2NjY2NjYwNjA-" -H "Accept-Language: en-US,en;q=0.8,ja;q=0.6" -H "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" http://www.yesplanet.co.il/presentationsJSON

不确定其他哪些 headers 重要

我通过检查开发工具中的网络面板查看了 headers chrome 发送的内容

从中我还可以看到 chrome 提出了 2 个请求