【问题标题】:Difference in *.JS files opened with cURL and in Browser使用 cURL 和在浏览器中打开的 *.JS 文件的差异
【发布时间】:2010-08-23 09:05:05
【问题描述】:

如果我在浏览器中打开这个 .JS 文件 (link text),我会在浏览器窗口中返回以下内容:

var PHONE_CNT=2;var PHONE_CNT2=0;var PHONE_CNT3=0;var EMAIL_CNT=2;var SHOW_CNT=1795;var PH_c="";var PH_1=0;var PH_2=0;var PH_3=0;
PH_1 = "JUQyJUFCJThDJUM5JThFJUQzJTgzeSVDMiVEQyVCQ2ElQkUlREQlQzglOUUlOTR6JUE2bSVCN3ElOUIlRTglQzQlQkYlODUlRDklQjIlQzglQjclQUE=";

如果我使用 cURL 或 ?php (file_get_contents) 打开同一个文件,那么内容会有所不同:

var PHONE_CNT=0;var PHONE_CNT2=0;var PHONE_CNT3=0;var EMAIL_CNT=0;var SHOW_CNT=1;var PH_c="";var PH_1=0;var PH_2=0;var PH_3=0; 
PH_1 = "JUQyJUFCJThDJUM5JThGJUMyJTg0JTlBJUJBJUM3JUJEdSVDMCVDRCVDOCVFNSU4RiU3RiVBNiVBOSVCOCU4MyU5MCVEOA=="; 

区别在于 PH_1 值。 我尝试为 cURL 设置不同的选项,但没有任何帮助。知道如何使用 cURL 获取 .JS 文件内容,这与使用浏览器时得到的相同。

谢谢你。

【问题讨论】:

    标签: javascript curl


    【解决方案1】:

    服务器必须根据某些请求参数生成不同的 PH1 值。您必须从两个请求中找出 HTTP 标头以查看导致差异的原因,例如设置一个本地代理,例如 http://www.fiddler2.com/fiddler2/ 并通过它发出两个请求。

    可能是用户代理、接受标头、cookie 或您连接的 IP 或国家/地区的某种组合,这会产生差异 - 不知道服务器逻辑是什么(或不了解不同 PH1 值的含义)我们实在帮不上忙,抱歉。

    【讨论】:

    • 确实,必须与请求参数有关,我尝试过的所有内容都收到了完全相同的数据。 PH1 是 Base64 编码的,url 引用(WTF?)二进制文件。
    • 是的,我的意思是说我尝试过使用浏览器和 wget 以及不同的用户代理字符串,每次都得到他的第一个结果。
    • 哦,对不起,我并不想区分 - 我不希望 wget 与 curl 有任何不同,只是我在这里安装了 wget 但没有 curl。但如果它有效,那就太好了!
    【解决方案2】:

    Curl 只是从服务器获取数据,它不解释 javascript。如果你想解释网页中的 javascript,你必须使用 javascript 引擎作为 spidermonkey。

    【讨论】:

    • 不,我不想执行它,只是为了看看脚本的内容。 @Rup 的 wget 想法有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多