https://www.poi86.com/poi/download_street_geojson/22054.html
这个页面资源,通过Resttemplate获取,Resttemplate表单提交获取文件,返回302 ,Transfer-Encoding:"chunked",获取到数据为null,这是为啥啊,
这是我的核心代码
浏览器打开,页面显示:
请先输入验证码
验证码我已经获取了,Captcha字段就是填写验证码的,我传过去了
@对弈:
302 表示临时性重定向。 访问一个Url时,被重定向到另一个url上。 常用于页面跳转。
重定向的 另一个url 你又处理吗?
在浏览器上,会 直接下载一个json文件。
获取这个看看。
@对弈:
打开控制台(Chrome),发现跳转到 https://www.poi86.com/GeoJson/Street ,然后才获取了数据
@对弈:
@快乐的凡人721: 我直接请求到你说的这个地址https://www.poi86.com/GeoJson/Street
@快乐的凡人721: 这些我都用表单提交了,提交到https://www.poi86.com/GeoJson/Street这个地址
@对弈: 直接请求,还要带参数、还有带cookie,,直接请求怕是不行的,,或者,Java很难实现吧
你试试。
@快乐的凡人721: 有可能是cookie问题,没想懂怎么弄
@对弈:
要处理验证码的自动识别,孤不清楚了。
听说Python的Scrapy 是个爬虫框架,可以看看 有没有方法
@快乐的凡人721: 不需要处理验证码自动识别,这个验证码其实我已经请求到本地了,然后手动填写,传这个参数请求,返回302,可能cookie没传,但是这个需要传吗
@对弈:
应该是 需要的。
这个cookie还有个 过期时间。
IdentitySession 这个cookie!
下面是 打开html页面,等了一段时间输入 验证码:返回 302,提示验证码错误
下面是正常情况:
@对弈:
cookie IdentitySession 的 有效期不长的。你手动输入 验证码 来得及?
@快乐的凡人721: 这个时长是?没看懂
@快乐的凡人721: 我用它那个页面填写,很久才填也没失效问题
@对弈:
Expires/Max-age 过期、最长有效 时间。看起来是 gmt+0 0时区时间,,北京时间+8小时。
看来是 北京时间 16:56 过期,应该没关系的。
【我用它那个页面填写,很久才填也没失效问题】你说的是对的。
这个请求头 要不要 设置下?服务器会不会检查 请求的前导页面?
Referer: https://www.poi86.com/poi/download_street_geojson/22054.html
@对弈:
cookie属性详解
https://www.cnblogs.com/daysme/p/8052930.html
园友的博文
@快乐的凡人721: 我获取验证码图片的时候并没用传cookie,也是可以,所以并不认为是Cookie的问题,也试过加Cookie也不行
@对弈:
再加 Referer 请求头呢
@快乐的凡人721: 没用呢
后面加Cookie就行了