我正在尝试使用cURL从Adobe中提取超链接:
使用cURL命令行时,我得到的链接是默认链接" http://www.adobe.com"而不是上面的那个。 我怀疑cURL不是"呼叫"使用正确的超链接填充按钮的JavaScript或JQuery。
任何人都可以指出我正确的方向吗? 如何让cURL生成或提取此按钮的正确链接?
答案 0 :(得分:1)
您可以使用phantomjs。
创建一个这样的脚本
#! /usr/bin/phantomjs --ssl-protocol=any
var page = require('webpage').create(),
system = require('system'),
t, address;
if (system.args.length === 1) {
console.log('Usage: load.js <some URL>');
phantom.exit();
}
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
address = system.args[1];
page.open(address, function(status) {
if (status !== 'success') {
console.log('FAIL to load the address: ' + status);
} else {
var btn = page.content.match(/<a id="buttonDownload" .*download-button">/)
console.log(btn);
}
phantom.exit();
});
并调用它(如果你的操作系统支持shebang)
$ ./load.js https://get.adobe.com/air
获得
<a id="buttonDownload" href="/air/download/?installer=Adobe_AIR_22.0_for_Win32&standalone=1" class="Button ButtonYellow download-button">
否则,请将其用作
phantomjs --ssl-protocol=any load.js https://get.adobe.com/air
答案 1 :(得分:0)
cURL
只执行HTTP / S请求。 HTTP协议仅用于文本,当返回HTML时,该文本可以包含浏览器和其他工具可以解释的标记,尤其是<img>
,<link>
和<script>
。
所以你得到的文字就是这样;实际上以与浏览器相同的方式执行javascript涉及大量工作(低估)。
Selenium等工具提供编程机制来执行&#34;执行&#34;现代网页的HTML。可能想看那里。