访问HTML文件中的Javascript变量

Mor*_*len 5 javascript

我正在对Gmail中的Rapportive API进行一些逆向工程.

我提出这个要求

import requests
url ='https://api.linkedin.com/uas/js/xdrpc.html'
r = requests.get(url)
print r.text
Run Code Online (Sandbox Code Playgroud)

响应是一个空的HTML文件,里面有很多Javascript.在第3661行,它为后续调用Rapportive设置RequestHeader:

ak.setRequestHeader("oauth_token", ae);
Run Code Online (Sandbox Code Playgroud)

有没有办法可以请求该页面然后返回ae

Jam*_*uck 0

如果您只是对检索令牌感兴趣,您不能只进行正则表达式匹配吗:

var str = '<script>var a = 1;...ak.setRequestHeader("oauth_token", ae);...</script>';
var token = str.match(/setRequestHeader\("oauth_token",\s*([^)]+)/)[1];
Run Code Online (Sandbox Code Playgroud)

尽管这假设 ae 是实际的字符串值。如果它是一个变量,那么这种方法就不会那么容易工作。

编辑:如果它是一个变量,你可以这样做:

str.replace(/\w+\.setRequestHeader\([^,]+,\s*([^)]+)\s*\);/, 'oauthToken = \1';
Run Code Online (Sandbox Code Playgroud)

在运行从页面返回的 JavaScript 之前,全局oauthToken(请注意缺少“var”)将包含令牌的值,假设代码的计算与调用者在相同的范围内运行。