3

我使用 Apache HttpClient 访问网页。我想点击一个链接,但该链接是 javaScript,我如何处理点击一个 javascript 链接并遵循 url 重定向?

示例 javascript 和 html 代码:

<a href="javascript:send(32023, 'YGHN_JKM', '8LMK');"> link</a>


function send(content_id, fic, cgRate) {
        var params = new Hash();
        params.set('content_id', content_id);
        params.set('tool', fic);
        params.set('cgRate', cgRate);

        new Ajax.Updater('return', '/mypkg/tools', {
            method: 'post',
            parameters: params,
            evalScripts: true,
            onInitialize: new Effect.Appear('loader', {duration: 0.0}),
            onComplete: new Effect.Fade('loader', {duration: 1.2})
        });
}
4

1 回答 1

8

看起来您尝试访问的页面使用 AJAX 来获取链接。仅使用普通 HTTPClient 很难模拟这种行为。HTTPClient 用于“原始”HTTP 通信,而不是浏览器仿真。相反,我建议使用类似于 HtmlUnit 的东西,它可以模拟浏览器并在页面上执行 JavaScript:http: //htmlunit.sourceforge.net/

HtmlUnit 有相当好的 JavaScript 支持,但并不完美。如果需要依赖 100% 完美的浏览器仿真,则需要使用 Selenium 等浏览器自动化框架:http: //seleniumhq.org/

于 2011-09-01T09:49:12.360 回答