V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
haiyan
V2EX  ›  程序员

关于反代网站的疑问?

  •  
  •   haiyan · 2020-07-02 09:38:14 +08:00 · 3598 次点击
    这是一个创建于 1630 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有一个网站需要完全代理,通过我的域名能访问到那个网站,nginx 可以实现。网站有下载文件的按钮,非直接下载链接,而是点按钮通过 JS 再生成的下载链接,这个链接就没有办法通过代理了,各位大神有没有什么方法思路可以实现?
    我的目的是帮同事下载国外客户发的文件,通过香港的服务器中转一下,直接下载速度慢还会断。
    22 条回复    2020-07-02 17:06:22 +08:00
    luhe
        1
    luhe  
       2020-07-02 09:41:07 +08:00
    我不会。但是,你给他个梯子不就行了
    ihciah
        2
    ihciah  
       2020-07-02 09:45:44 +08:00 via iPhone
    替换一下网页内容就好了
    haiyan
        3
    haiyan  
    OP
       2020-07-02 09:47:33 +08:00
    @luhe 梯子都不行,还是会中断,基本下不了,但是我在香港的服务器就可以很快下载,然后再搬回来。
    lieyan
        4
    lieyan  
       2020-07-02 09:48:01 +08:00
    参考: https://www.v2ex.com/t/507639 自己写个 js 去劫持就行了
    haiyan
        5
    haiyan  
    OP
       2020-07-02 09:48:29 +08:00
    @ihciah 不是直接的下载地址
    keepeye
        6
    keepeye  
       2020-07-02 09:49:23 +08:00
    下载链接为啥没法反代?带宽受限吗?
    haiyan
        7
    haiyan  
    OP
       2020-07-02 09:51:18 +08:00
    @lieyan 我写过 chrome 插件劫持,劫持到的链接打不开了
    haiyan
        8
    haiyan  
    OP
       2020-07-02 09:55:25 +08:00
    https://wetransfer.com/downloads/41d317587fa15422a2cb1cbeb23095cf20200702015251/d0435a
    就是这个网站,大神可以帮我看看,搞得定的话带价来都行。
    shenlanAZ
        9
    shenlanAZ  
       2020-07-02 09:55:45 +08:00
    复制下载链接 把域名替换成你的域名 再进行下载。
    huabalance
        10
    huabalance  
       2020-07-02 10:00:26 +08:00
    点击下载有一个 post 请求,返回体是 {“direct_link":xxx} 这个 direct_link 不需要 cookie 即可下载
    haiyan
        11
    haiyan  
    OP
       2020-07-02 10:00:53 +08:00
    @shenlanAZ 这种方法我试过,不行,但是好奇怪,我把下载链接用 wget 又可以下载
    imoasislee
        12
    imoasislee  
       2020-07-02 10:04:32 +08:00
    试试 sub_filter
    scukmh
        13
    scukmh  
       2020-07-02 10:19:52 +08:00
    nginx sub_filter.
    no1xsyzy
        14
    no1xsyzy  
       2020-07-02 10:25:33 +08:00
    你在香港的服务器上建个 aria2 rpc server,下载好的文件再用 nginx 提供呗。
    pinkSlime
        15
    pinkSlime  
       2020-07-02 11:47:10 +08:00
    既然代理了 那 ajax 请求发到 api/v4/transfers/{id}这个应该也代理了吧 怎会下载不到
    haiyan
        16
    haiyan  
    OP
       2020-07-02 14:07:23 +08:00
    @huabalance 我写 chrome 插件就是获取到这个链接,再提交到后台去下载,也是不行的。
    haiyan
        17
    haiyan  
    OP
       2020-07-02 14:08:39 +08:00
    @imoasislee
    @scukmh 试过了替换不了那个链接,A 标签的都可以替换
    MooRider
        18
    MooRider  
       2020-07-02 15:20:22 +08:00
    jsproxy
    试试这个, 他用一个 js 将网页完全重写了一遍
    github 上就有
    haiyan
        19
    haiyan  
    OP
       2020-07-02 15:29:09 +08:00
    @MooRider 我还真用过,其他都行,就是点下载不行
    tom8
        20
    tom8  
       2020-07-02 16:58:22 +08:00
    nginx sub_filter 试试?
    win7pro
        21
    win7pro  
       2020-07-02 17:03:06 +08:00
    selenium+js 重写,在服务器用无头浏览器打开页面,模拟执行点击时运行的 js,拿到返回的地址,然后下载。
    haiyan
        22
    haiyan  
    OP
       2020-07-02 17:06:22 +08:00
    @win7pro 感觉可以哦,我试试看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5392 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:52 · PVG 14:52 · LAX 22:52 · JFK 01:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.