求问如何用 java 或者别的方法实现自动下载某带用户验证的文件?

2016-05-08 15:12:54 +08:00
 jrhu05
rt
因为项目需要,程序要实现自动下载某一数据库文件,该数据库文件是公开的,但是需要登录才能进行下载,因此不知道该如何实现,求大神赐教。
待下载的文件网址: https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude-zipcode
需要下载的是 ipv4bin 版本
提供一下测试账号和密码:
id : jrhu05@126.com
key : 4YAEYQNK
求大神帮帮忙,我一点思路也没有,试了一下模拟登陆一点用也没有。
1352 次点击
所在节点    问与答
6 条回复
Ouyangan
2016-05-08 16:09:28 +08:00
httpclient , 首先模拟登陆系统,然后可以直接下载文件. httpclient 会自动携带上一次访问地址的 cookie. 明白了吗?
kendetrics
2016-05-08 17:16:06 +08:00
curl 'https://lite.ip2location.com/download?db=db9&type=bin&version=4' -H 'Cookie: PHPSESSID='`curl -s 'https://lite.ip2location.com/login' -H 'Content-Type: application/x-www-form-urlencoded' --data 'emailAddress=jrhu05%40126.com&password=4YAEYQNK+' -v 2>&1 | grep 'Set-Cookie: PHPSESSID' | awk -F '[ =;]' '{print $4}'` > ipv4.bin

我测试没问题,你试试
jrhu05
2016-05-08 21:36:47 +08:00
@Ouyangan 嗯,谢谢哦,我后来找到了他们提供的一个接口,不过学习了,谢谢!
jrhu05
2016-05-08 21:36:59 +08:00
@kendetrics 感谢大神!
jrhu05
2016-05-08 21:49:14 +08:00
@kendetrics 大神能否麻烦你看一下 IPIP 的该如何下载免费数据库呢?情况和 ip2location 差不多,我不会抓包和分析 cookie ,拜托帮帮忙,谢谢哦,地址是: http://www.ipip.net/free_download/
kendetrics
2016-05-08 22:16:02 +08:00
@jrhu05 道理都一样, IPIP 验证的是 cookie 里的 LOVEAPP_SESSID
上边的稍微改改就能用了
https://gist.github.com/anonymous/b76ce8b65435b9478e8d000195ed1e9a

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/277126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX